diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,14 @@
 # Change Log
 
+## [3.26.6] - 2026-03-07
+
+- Bump API version to v1.3.302
+  * Last in the 1.3 series.
+
+## [3.26.5] - 2026-03-07
+
+- Bump API version to v1.3.278
+
 ## [3.26.5] - 2026-03-05
 
 - Bump API version to v1.3.274
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name: vulkan
-version: "3.26.5"
+version: "3.26.6"
 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
@@ -82,6 +82,8 @@
 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)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_anti_lag (AntiLagDataAMD)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_anti_lag (AntiLagPresentationInfoAMD)
 import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (ApplicationInfo)
 import {-# SOURCE #-} Vulkan.Core10.Pass (AttachmentDescription)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (AttachmentDescription2)
@@ -89,7 +91,7 @@
 import {-# SOURCE #-} Vulkan.Core10.Pass (AttachmentReference)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (AttachmentReference2)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (AttachmentReferenceStencilLayout)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (AttachmentSampleCountInfoAMD)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_mixed_attachment_samples (AttachmentSampleCountInfoAMD)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (AttachmentSampleLocationsEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (BindAccelerationStructureMemoryInfoNV)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2 (BindBufferMemoryDeviceGroupInfo)
@@ -100,11 +102,13 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 (BindImageMemoryInfo)
 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_EXT_device_generated_commands (BindIndexBufferIndirectCommandEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindIndexBufferIndirectCommandNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance6 (BindMemoryStatusKHR)
 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_EXT_device_generated_commands (BindVertexBufferIndirectCommandEXT)
 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)
@@ -129,7 +133,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2CreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Core10.BufferView (BufferViewCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_calibrated_timestamps (CalibratedTimestampInfoKHR)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CheckpointData2NV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (CheckpointData2NV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (CheckpointDataNV)
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ClearAttachment)
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ClearDepthStencilValue)
@@ -152,6 +156,7 @@
 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_NV_cooperative_matrix2 (CooperativeMatrixFlexibleDimensionsPropertiesNV)
 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)
@@ -174,6 +179,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuFunctionCreateInfoNVX)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuLaunchInfoNVX)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuModuleCreateInfoNVX)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuModuleTexturingModeCreateInfoNVX)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cuda_kernel_launch (CudaFunctionCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cuda_kernel_launch (CudaLaunchInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cuda_kernel_launch (CudaModuleCreateInfoNV)
@@ -194,6 +200,7 @@
 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_depth_clamp_control (DepthClampRangeEXT)
 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)
@@ -238,6 +245,7 @@
 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)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (DevicePipelineBinaryInternalCacheControlKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (DevicePrivateDataCreateInfo)
 import {-# SOURCE #-} Vulkan.Core10.Device (DeviceQueueCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (DeviceQueueGlobalPriorityCreateInfoKHR)
@@ -254,6 +262,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayModeParametersKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_display_properties2 (DisplayModeProperties2KHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayModePropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_display_stereo (DisplayModeStereoPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_display_native_hdr (DisplayNativeHdrSurfaceCapabilitiesAMD)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_display_properties2 (DisplayPlaneCapabilities2KHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayPlaneCapabilitiesKHR)
@@ -265,8 +274,10 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_display_properties2 (DisplayProperties2KHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplaySurfaceCreateInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_display_stereo (DisplaySurfaceStereoCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Core10.OtherTypes (DrawIndexedIndirectCommand)
 import {-# SOURCE #-} Vulkan.Core10.OtherTypes (DrawIndirectCommand)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (DrawIndirectCountIndirectCommandEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mesh_shader (DrawMeshTasksIndirectCommandEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (DrawMeshTasksIndirectCommandNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFormatModifierProperties2EXT)
@@ -320,8 +331,12 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentsCreateInfo)
 import {-# SOURCE #-} Vulkan.Core10.Pass (FramebufferCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (FramebufferMixedSamplesCombinationNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (GeneratedCommandsInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GeneratedCommandsInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (GeneratedCommandsMemoryRequirementsInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GeneratedCommandsMemoryRequirementsInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (GeneratedCommandsPipelineInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (GeneratedCommandsShaderInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryAABBNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryDataNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryNV)
@@ -332,10 +347,12 @@
 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_HUAWEI_hdr_vivid (HdrVividDynamicMetadataHUAWEI)
 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.Extensions.VK_MESA_image_alignment_control (ImageAlignmentControlCreateInfoMESA)
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageBlit)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageBlit2)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (ImageCaptureDescriptorDataInfoEXT)
@@ -393,9 +410,19 @@
 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)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectCommandsExecutionSetTokenEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectCommandsIndexBufferTokenEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectCommandsLayoutCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsLayoutCreateInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectCommandsLayoutTokenEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsLayoutTokenNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectCommandsPushConstantTokenEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsStreamNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectCommandsVertexBufferTokenEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectExecutionSetCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectExecutionSetPipelineInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectExecutionSetShaderInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectExecutionSetShaderLayoutInfoEXT)
 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)
@@ -424,6 +451,7 @@
 import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (MemoryHeap)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (MemoryHostPointerPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_map_memory2 (MemoryMapInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_map_memory_placed (MemoryMapPlacedInfoEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (MemoryOpaqueCaptureAddressAllocateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (MemoryPriorityAllocateInfoEXT)
 import {-# SOURCE #-} Vulkan.Core10.MemoryManagement (MemoryRequirements)
@@ -444,7 +472,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (MultiDrawInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (MultisamplePropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (MultisampledRenderToSingleSampledInfoEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (MultiviewPerViewAttributesInfoNVX)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (MultiviewPerViewAttributesInfoNVX)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas (MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (MutableDescriptorTypeCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (MutableDescriptorTypeListEXT)
@@ -474,6 +502,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_AMD_anti_lag (PhysicalDeviceAntiLagFeaturesAMD)
 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)
@@ -486,9 +515,13 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalDeviceCoherentMemoryFeaturesAMD)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_command_buffer_inheritance (PhysicalDeviceCommandBufferInheritanceFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PhysicalDeviceConservativeRasterizationPropertiesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix2 (PhysicalDeviceCooperativeMatrix2FeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix2 (PhysicalDeviceCooperativeMatrix2PropertiesNV)
 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)
@@ -505,6 +538,7 @@
 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_control (PhysicalDeviceDepthClampControlFeaturesEXT)
 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)
@@ -517,7 +551,9 @@
 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_EXT_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (PhysicalDeviceDeviceMemoryReportFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (PhysicalDeviceDiagnosticsConfigFeaturesNV)
@@ -568,11 +604,14 @@
 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_HUAWEI_hdr_vivid (PhysicalDeviceHdrVividFeaturesHUAWEI)
 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_MESA_image_alignment_control (PhysicalDeviceImageAlignmentControlFeaturesMESA)
+import {-# SOURCE #-} Vulkan.Extensions.VK_MESA_image_alignment_control (PhysicalDeviceImageAlignmentControlPropertiesMESA)
 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)
@@ -591,8 +630,13 @@
 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_KHR_maintenance7 (PhysicalDeviceLayeredApiPropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance7 (PhysicalDeviceLayeredApiPropertiesListKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance7 (PhysicalDeviceLayeredApiVulkanPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_MSFT_layered_driver (PhysicalDeviceLayeredDriverPropertiesMSFT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_dithering (PhysicalDeviceLegacyDitheringFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_vertex_attributes (PhysicalDeviceLegacyVertexAttributesFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_vertex_attributes (PhysicalDeviceLegacyVertexAttributesPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceLimits)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_line_rasterization (PhysicalDeviceLineRasterizationFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_line_rasterization (PhysicalDeviceLineRasterizationPropertiesKHR)
@@ -604,6 +648,10 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PhysicalDeviceMaintenance5PropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance6 (PhysicalDeviceMaintenance6FeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance6 (PhysicalDeviceMaintenance6PropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance7 (PhysicalDeviceMaintenance7FeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance7 (PhysicalDeviceMaintenance7PropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_map_memory_placed (PhysicalDeviceMapMemoryPlacedFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_map_memory_placed (PhysicalDeviceMapMemoryPlacedPropertiesEXT)
 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)
@@ -635,6 +683,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_per_stage_descriptor_set (PhysicalDevicePerStageDescriptorSetFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryPropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PhysicalDevicePipelineBinaryFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PhysicalDevicePipelineBinaryPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_library_group_handles (PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT)
@@ -647,6 +697,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (PhysicalDevicePresentBarrierFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_present_mode_fifo_latest_ready (PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitive_topology_list_restart (PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitives_generated_query (PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT)
@@ -660,6 +711,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_push_descriptor (PhysicalDevicePushDescriptorPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rgba10x6_formats (PhysicalDeviceRGBA10X6FormatsFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_raw_access_chains (PhysicalDeviceRawAccessChainsFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder (PhysicalDeviceRayTracingInvocationReorderFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder (PhysicalDeviceRayTracingInvocationReorderPropertiesNV)
@@ -669,6 +721,7 @@
 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_ray_tracing_validation (PhysicalDeviceRayTracingValidationFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_IMG_relaxed_line_rasterization (PhysicalDeviceRelaxedLineRasterizationFeaturesIMG)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedFeaturesARM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedPropertiesARM)
@@ -682,6 +735,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_scheduling_controls (PhysicalDeviceSchedulingControlsFeaturesARM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_scheduling_controls (PhysicalDeviceSchedulingControlsPropertiesARM)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_atomic_float16_vector (PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features)
@@ -710,6 +764,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_object (PhysicalDeviceShaderObjectFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_object (PhysicalDeviceShaderObjectPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_quad_control (PhysicalDeviceShaderQuadControlFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_relaxed_extended_instruction (PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_replicated_composites (PhysicalDeviceShaderReplicatedCompositesFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsPropertiesNV)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures)
@@ -745,6 +801,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_robustness (PhysicalDeviceVertexAttributeRobustnessFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features)
 import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties)
@@ -758,6 +815,13 @@
 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.Extensions.VK_KHR_pipeline_binary (PipelineBinaryCreateInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PipelineBinaryDataInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PipelineBinaryDataKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PipelineBinaryHandlesInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PipelineBinaryInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PipelineBinaryKeyKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PipelineBinaryKeysAndDataKHR)
 import {-# SOURCE #-} Vulkan.Core10.PipelineCache (PipelineCacheCreateInfo)
 import {-# SOURCE #-} Vulkan.Core10.OtherTypes (PipelineCacheHeaderVersionOne)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT)
@@ -769,6 +833,7 @@
 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.Extensions.VK_KHR_pipeline_binary (PipelineCreateInfoKHR)
 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)
@@ -807,6 +872,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineVertexInputStateCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportCoarseSampleOrderStateCreateInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_control (PipelineViewportDepthClampControlCreateInfoEXT)
 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)
@@ -830,7 +896,7 @@
 import {-# SOURCE #-} Vulkan.Core10.Query (QueryPoolCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (QueryPoolPerformanceCreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (QueryPoolPerformanceQueryCreateInfoINTEL)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (QueueFamilyCheckpointProperties2NV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (QueueFamilyCheckpointProperties2NV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (QueueFamilyCheckpointPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (QueueFamilyGlobalPriorityPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (QueueFamilyProperties)
@@ -843,6 +909,7 @@
 import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Rect2D)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_incremental_present (RectLayerKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (RefreshCycleDurationGOOGLE)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (ReleaseCapturedPipelineDataInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (ReleaseSwapchainImagesInfoEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (RenderPassAttachmentBeginInfo)
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (RenderPassBeginInfo)
@@ -864,8 +931,8 @@
 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_local_read (RenderingAttachmentLocationInfoKHR)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentDensityMapAttachmentInfoEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentShadingRateAttachmentInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (RenderingFragmentDensityMapAttachmentInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (RenderingFragmentShadingRateAttachmentInfoKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read (RenderingInputAttachmentIndexInfoKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ResolveImageInfo2)
@@ -986,6 +1053,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (WriteDescriptorSetAccelerationStructureKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (WriteDescriptorSetAccelerationStructureNV)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (WriteDescriptorSetInlineUniformBlock)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (WriteIndirectExecutionSetPipelineEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (WriteIndirectExecutionSetShaderEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_hdr_metadata (XYColorEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (XcbSurfaceCreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xlib_surface (XlibSurfaceCreateInfoKHR)
@@ -1148,11 +1217,14 @@
   Extends CommandBufferInheritanceInfo RenderingAttachmentLocationInfoKHR = ()
   Extends CommandBufferInheritanceInfo RenderingInputAttachmentIndexInfoKHR = ()
   Extends CommandBufferSubmitInfo RenderPassStripeSubmitInfoARM = ()
+  Extends ComputePipelineCreateInfo ComputePipelineIndirectBufferInfoNV = ()
   Extends ComputePipelineCreateInfo PipelineCreateFlags2CreateInfoKHR = ()
+  Extends ComputePipelineCreateInfo PipelineBinaryInfoKHR = ()
   Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfo = ()
   Extends ComputePipelineCreateInfo SubpassShadingPipelineCreateInfoHUAWEI = ()
   Extends ComputePipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()
   Extends ComputePipelineCreateInfo PipelineRobustnessCreateInfoEXT = ()
+  Extends CuModuleCreateInfoNVX CuModuleTexturingModeCreateInfoNVX = ()
   Extends DebugUtilsMessengerCallbackDataEXT DeviceAddressBindingCallbackDataEXT = ()
   Extends DepthBiasInfoEXT DepthBiasRepresentationInfoEXT = ()
   Extends DescriptorBufferBindingInfoEXT BufferUsageFlags2CreateInfoKHR = ()
@@ -1183,6 +1255,7 @@
   Extends DeviceCreateInfo PhysicalDeviceMaintenance4Features = ()
   Extends DeviceCreateInfo PhysicalDeviceMaintenance5FeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceMaintenance6FeaturesKHR = ()
+  Extends DeviceCreateInfo PhysicalDeviceMaintenance7FeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderDrawParametersFeatures = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderFloat16Int8Features = ()
   Extends DeviceCreateInfo PhysicalDeviceHostQueryResetFeatures = ()
@@ -1203,7 +1276,7 @@
   Extends DeviceCreateInfo PhysicalDeviceRepresentativeFragmentTestFeaturesNV = ()
   Extends DeviceCreateInfo PhysicalDeviceExclusiveScissorFeaturesNV = ()
   Extends DeviceCreateInfo PhysicalDeviceCornerSampledImageFeaturesNV = ()
-  Extends DeviceCreateInfo PhysicalDeviceComputeShaderDerivativesFeaturesNV = ()
+  Extends DeviceCreateInfo PhysicalDeviceComputeShaderDerivativesFeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderImageFootprintFeaturesNV = ()
   Extends DeviceCreateInfo PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = ()
   Extends DeviceCreateInfo PhysicalDeviceCopyMemoryIndirectFeaturesNV = ()
@@ -1274,10 +1347,14 @@
   Extends DeviceCreateInfo PhysicalDeviceImage2DViewOf3DFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceImageSlicedViewOf3DFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDeviceLegacyVertexAttributesFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceMutableDescriptorTypeFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceDepthClipControlFeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDeviceDepthClampControlFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceExternalMemoryRDMAFeaturesNV = ()
+  Extends DeviceCreateInfo PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceColorWriteEnableFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceSynchronization2Features = ()
   Extends DeviceCreateInfo PhysicalDeviceHostImageCopyFeaturesEXT = ()
@@ -1292,12 +1369,15 @@
   Extends DeviceCreateInfo PhysicalDeviceShaderIntegerDotProductFeatures = ()
   Extends DeviceCreateInfo PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceRayTracingMotionBlurFeaturesNV = ()
+  Extends DeviceCreateInfo PhysicalDeviceRayTracingValidationFeaturesNV = ()
   Extends DeviceCreateInfo PhysicalDeviceRGBA10X6FormatsFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceDynamicRenderingFeatures = ()
   Extends DeviceCreateInfo PhysicalDeviceImageViewMinLodFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceLinearColorAttachmentFeaturesNV = ()
   Extends DeviceCreateInfo PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDevicePipelineBinaryFeaturesKHR = ()
+  Extends DeviceCreateInfo DevicePipelineBinaryInternalCacheControlKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = ()
   Extends DeviceCreateInfo PhysicalDeviceNestedCommandBufferFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderModuleIdentifierFeaturesEXT = ()
@@ -1334,6 +1414,7 @@
   Extends DeviceCreateInfo PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = ()
   Extends DeviceCreateInfo PhysicalDeviceCooperativeMatrixFeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderEnqueueFeaturesAMDX = ()
+  Extends DeviceCreateInfo PhysicalDeviceAntiLagFeaturesAMD = ()
   Extends DeviceCreateInfo PhysicalDeviceCubicClampFeaturesQCOM = ()
   Extends DeviceCreateInfo PhysicalDeviceYcbcrDegammaFeaturesQCOM = ()
   Extends DeviceCreateInfo PhysicalDeviceCubicWeightsFeaturesQCOM = ()
@@ -1352,8 +1433,20 @@
   Extends DeviceCreateInfo PhysicalDeviceShaderFloatControls2FeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderQuadControlFeaturesKHR = ()
+  Extends DeviceCreateInfo PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV = ()
+  Extends DeviceCreateInfo PhysicalDeviceMapMemoryPlacedFeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDeviceRawAccessChainsFeaturesNV = ()
+  Extends DeviceCreateInfo PhysicalDeviceCommandBufferInheritanceFeaturesNV = ()
+  Extends DeviceCreateInfo PhysicalDeviceImageAlignmentControlFeaturesMESA = ()
+  Extends DeviceCreateInfo PhysicalDeviceShaderReplicatedCompositesFeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDeviceCooperativeMatrix2FeaturesNV = ()
+  Extends DeviceCreateInfo PhysicalDeviceHdrVividFeaturesHUAWEI = ()
+  Extends DeviceCreateInfo PhysicalDeviceVertexAttributeRobustnessFeaturesEXT = ()
   Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoKHR = ()
   Extends DeviceQueueCreateInfo DeviceQueueShaderCoreControlCreateInfoARM = ()
+  Extends DisplayModeProperties2KHR DisplayModeStereoPropertiesNV = ()
+  Extends DisplaySurfaceCreateInfoKHR DisplaySurfaceStereoCreateInfoNV = ()
   Extends EventCreateInfo ExportMetalObjectCreateInfoEXT = ()
   Extends EventCreateInfo ImportMetalSharedEventInfoEXT = ()
   Extends ExecutionGraphPipelineCreateInfoAMDX PipelineCreationFeedbackCreateInfo = ()
@@ -1371,7 +1464,12 @@
   Extends FormatProperties2 FormatProperties3 = ()
   Extends FormatProperties2 DrmFormatModifierPropertiesList2EXT = ()
   Extends FramebufferCreateInfo FramebufferAttachmentsCreateInfo = ()
+  Extends GeneratedCommandsInfoEXT GeneratedCommandsPipelineInfoEXT = ()
+  Extends GeneratedCommandsInfoEXT GeneratedCommandsShaderInfoEXT = ()
+  Extends GeneratedCommandsMemoryRequirementsInfoEXT GeneratedCommandsPipelineInfoEXT = ()
+  Extends GeneratedCommandsMemoryRequirementsInfoEXT GeneratedCommandsShaderInfoEXT = ()
   Extends GraphicsPipelineCreateInfo PipelineCreateFlags2CreateInfoKHR = ()
+  Extends GraphicsPipelineCreateInfo PipelineBinaryInfoKHR = ()
   Extends GraphicsPipelineCreateInfo GraphicsPipelineShaderGroupsCreateInfoNV = ()
   Extends GraphicsPipelineCreateInfo PipelineDiscardRectangleStateCreateInfoEXT = ()
   Extends GraphicsPipelineCreateInfo ExternalFormatANDROID = ()
@@ -1388,6 +1486,7 @@
   Extends GraphicsPipelineCreateInfo PipelineRobustnessCreateInfoEXT = ()
   Extends GraphicsPipelineCreateInfo RenderingAttachmentLocationInfoKHR = ()
   Extends GraphicsPipelineCreateInfo RenderingInputAttachmentIndexInfoKHR = ()
+  Extends HdrMetadataEXT HdrVividDynamicMetadataHUAWEI = ()
   Extends ImageBlit2 CopyCommandTransformInfoQCOM = ()
   Extends ImageCreateInfo DedicatedAllocationImageCreateInfoNV = ()
   Extends ImageCreateInfo ExternalMemoryImageCreateInfoNV = ()
@@ -1406,6 +1505,7 @@
   Extends ImageCreateInfo ImportMetalIOSurfaceInfoEXT = ()
   Extends ImageCreateInfo OpticalFlowImageFormatInfoNV = ()
   Extends ImageCreateInfo ExternalFormatQNX = ()
+  Extends ImageCreateInfo ImageAlignmentControlCreateInfoMESA = ()
   Extends ImageFormatProperties2 ExternalImageFormatProperties = ()
   Extends ImageFormatProperties2 SamplerYcbcrConversionImageFormatProperties = ()
   Extends ImageFormatProperties2 TextureLODGatherFormatPropertiesAMD = ()
@@ -1426,6 +1526,7 @@
   Extends ImageViewCreateInfo ImageViewMinLodCreateInfoEXT = ()
   Extends ImageViewCreateInfo ExportMetalObjectCreateInfoEXT = ()
   Extends ImageViewCreateInfo ImageViewSampleWeightCreateInfoQCOM = ()
+  Extends IndirectCommandsLayoutCreateInfoEXT PipelineLayoutCreateInfo = ()
   Extends InstanceCreateInfo DebugReportCallbackCreateInfoEXT = ()
   Extends InstanceCreateInfo ValidationFlagsEXT = ()
   Extends InstanceCreateInfo ValidationFeaturesEXT = ()
@@ -1452,6 +1553,7 @@
   Extends MemoryAllocateInfo ExportMetalObjectCreateInfoEXT = ()
   Extends MemoryAllocateInfo ImportMetalBufferInfoEXT = ()
   Extends MemoryAllocateInfo ImportScreenBufferInfoQNX = ()
+  Extends MemoryMapInfoKHR MemoryMapPlacedInfoEXT = ()
   Extends MemoryRequirements2 MemoryDedicatedRequirements = ()
   Extends OpticalFlowSessionCreateInfoNV OpticalFlowSessionCreatePrivateDataInfoNV = ()
   Extends PhysicalDeviceClusterCullingShaderFeaturesHUAWEI PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI = ()
@@ -1474,6 +1576,7 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceMaintenance4Features = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceMaintenance5FeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceMaintenance6FeaturesKHR = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceMaintenance7FeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderDrawParametersFeatures = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderFloat16Int8Features = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceHostQueryResetFeatures = ()
@@ -1493,7 +1596,7 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceRepresentativeFragmentTestFeaturesNV = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceExclusiveScissorFeaturesNV = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceCornerSampledImageFeaturesNV = ()
-  Extends PhysicalDeviceFeatures2 PhysicalDeviceComputeShaderDerivativesFeaturesNV = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceComputeShaderDerivativesFeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageFootprintFeaturesNV = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceCopyMemoryIndirectFeaturesNV = ()
@@ -1562,10 +1665,14 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceImage2DViewOf3DFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceImageSlicedViewOf3DFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceLegacyVertexAttributesFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceMutableDescriptorTypeFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthClipControlFeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthClampControlFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceExternalMemoryRDMAFeaturesNV = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceColorWriteEnableFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceSynchronization2Features = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceHostImageCopyFeaturesEXT = ()
@@ -1580,12 +1687,14 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderIntegerDotProductFeatures = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingMotionBlurFeaturesNV = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingValidationFeaturesNV = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceRGBA10X6FormatsFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceDynamicRenderingFeatures = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceImageViewMinLodFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceLinearColorAttachmentFeaturesNV = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDevicePipelineBinaryFeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceNestedCommandBufferFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderModuleIdentifierFeaturesEXT = ()
@@ -1622,6 +1731,7 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceCooperativeMatrixFeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderEnqueueFeaturesAMDX = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceAntiLagFeaturesAMD = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceCubicClampFeaturesQCOM = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcrDegammaFeaturesQCOM = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceCubicWeightsFeaturesQCOM = ()
@@ -1639,6 +1749,16 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderFloatControls2FeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderQuadControlFeaturesKHR = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceMapMemoryPlacedFeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceRawAccessChainsFeaturesNV = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceCommandBufferInheritanceFeaturesNV = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceImageAlignmentControlFeaturesMESA = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderReplicatedCompositesFeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceCooperativeMatrix2FeaturesNV = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceHdrVividFeaturesHUAWEI = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexAttributeRobustnessFeaturesEXT = ()
   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()
   Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = ()
   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()
@@ -1646,6 +1766,7 @@
   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageViewImageFormatInfoEXT = ()
   Extends PhysicalDeviceImageFormatInfo2 ImageCompressionControlEXT = ()
   Extends PhysicalDeviceImageFormatInfo2 OpticalFlowImageFormatInfoNV = ()
+  Extends PhysicalDeviceLayeredApiPropertiesKHR PhysicalDeviceLayeredApiVulkanPropertiesKHR = ()
   Extends PhysicalDeviceMemoryProperties2 PhysicalDeviceMemoryBudgetPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceDeviceGeneratedCommandsPropertiesNV = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceMultiDrawPropertiesEXT = ()
@@ -1666,6 +1787,8 @@
   Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance4Properties = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance5PropertiesKHR = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance6PropertiesKHR = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance7PropertiesKHR = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceLayeredApiPropertiesListKHR = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceFloatControlsProperties = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceExternalMemoryHostPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceConservativeRasterizationPropertiesEXT = ()
@@ -1678,6 +1801,7 @@
   Extends PhysicalDeviceProperties2 PhysicalDevicePCIBusInfoPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceDepthStencilResolveProperties = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceTransformFeedbackPropertiesEXT = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceComputeShaderDerivativesPropertiesKHR = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceCopyMemoryIndirectPropertiesNV = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceMemoryDecompressionPropertiesNV = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceShadingRateImagePropertiesNV = ()
@@ -1706,6 +1830,8 @@
   Extends PhysicalDeviceProperties2 PhysicalDevicePortabilitySubsetPropertiesKHR = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRatePropertiesKHR = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceLegacyVertexAttributesPropertiesEXT = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceHostImageCopyPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceProvokingVertexPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceDescriptorBufferPropertiesEXT = ()
@@ -1713,6 +1839,7 @@
   Extends PhysicalDeviceProperties2 PhysicalDeviceShaderIntegerDotProductProperties = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceDrmPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = ()
+  Extends PhysicalDeviceProperties2 PhysicalDevicePipelineBinaryPropertiesKHR = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceNestedCommandBufferPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceShaderModuleIdentifierPropertiesEXT = ()
@@ -1735,6 +1862,9 @@
   Extends PhysicalDeviceProperties2 PhysicalDeviceCudaKernelLaunchPropertiesNV = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceSchedulingControlsPropertiesARM = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceRenderPassStripedPropertiesARM = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceMapMemoryPlacedPropertiesEXT = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceImageAlignmentControlPropertiesMESA = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceCooperativeMatrix2PropertiesNV = ()
   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = ()
   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = ()
   Extends PhysicalDeviceSurfaceInfo2KHR SurfacePresentModeEXT = ()
@@ -1766,6 +1896,7 @@
   Extends PipelineViewportStateCreateInfo PipelineViewportShadingRateImageStateCreateInfoNV = ()
   Extends PipelineViewportStateCreateInfo PipelineViewportCoarseSampleOrderStateCreateInfoNV = ()
   Extends PipelineViewportStateCreateInfo PipelineViewportDepthClipControlCreateInfoEXT = ()
+  Extends PipelineViewportStateCreateInfo PipelineViewportDepthClampControlCreateInfoEXT = ()
   Extends PresentInfoKHR DisplayPresentInfoKHR = ()
   Extends PresentInfoKHR PresentRegionsKHR = ()
   Extends PresentInfoKHR DeviceGroupPresentInfoKHR = ()
@@ -1784,6 +1915,7 @@
   Extends QueueFamilyProperties2 QueueFamilyCheckpointPropertiesNV = ()
   Extends QueueFamilyProperties2 QueueFamilyCheckpointProperties2NV = ()
   Extends RayTracingPipelineCreateInfoKHR PipelineCreateFlags2CreateInfoKHR = ()
+  Extends RayTracingPipelineCreateInfoKHR PipelineBinaryInfoKHR = ()
   Extends RayTracingPipelineCreateInfoKHR PipelineCreationFeedbackCreateInfo = ()
   Extends RayTracingPipelineCreateInfoKHR PipelineRobustnessCreateInfoEXT = ()
   Extends RayTracingPipelineCreateInfoNV PipelineCreateFlags2CreateInfoKHR = ()
@@ -1825,7 +1957,9 @@
   Extends SemaphoreCreateInfo ImportMetalSharedEventInfoEXT = ()
   Extends SemaphoreCreateInfo QueryLowLatencySupportNV = ()
   Extends SetDescriptorBufferOffsetsInfoEXT PipelineLayoutCreateInfo = ()
+  Extends ShaderCreateInfoEXT ValidationFeaturesEXT = ()
   Extends ShaderCreateInfoEXT PipelineShaderStageRequiredSubgroupSizeCreateInfo = ()
+  Extends ShaderModuleCreateInfo ValidationFeaturesEXT = ()
   Extends ShaderModuleCreateInfo ShaderModuleValidationCacheCreateInfoEXT = ()
   Extends SubmitInfo Win32KeyedMutexAcquireReleaseInfoNV = ()
   Extends SubmitInfo Win32KeyedMutexAcquireReleaseInfoKHR = ()
@@ -1978,8 +2112,11 @@
 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_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV -> go @ComputePipelineIndirectBufferInfoNV
   STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR -> go @PipelineCreateFlags2CreateInfoKHR
+  STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR -> go @PipelineBinaryInfoKHR
   STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO -> go @PipelineLayoutCreateInfo
+  STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV -> go @DisplaySurfaceStereoCreateInfoNV
   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
@@ -2041,6 +2178,7 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR -> go @PhysicalDevicePresentIdFeaturesKHR
   STRUCTURE_TYPE_PRESENT_ID_KHR -> go @PresentIdKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR -> go @PhysicalDevicePresentWaitFeaturesKHR
+  STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI -> go @HdrVividDynamicMetadataHUAWEI
   STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD -> go @DisplayNativeHdrSurfaceCapabilitiesAMD
   STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD -> go @SwapchainDisplayNativeHdrCreateInfoAMD
   STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE -> go @PresentTimesInfoGOOGLE
@@ -2050,6 +2188,7 @@
   STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT -> go @PipelineDiscardRectangleStateCreateInfoEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX -> go @PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
   STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO -> go @RenderPassInputAttachmentAspectCreateInfo
+  STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV -> go @DisplayModeStereoPropertiesNV
   STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR -> go @SharedPresentSurfaceCapabilitiesKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES -> go @PhysicalDevice16BitStorageFeatures
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES -> go @PhysicalDeviceSubgroupProperties
@@ -2094,6 +2233,10 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR -> go @PhysicalDeviceMaintenance5PropertiesKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR -> go @PhysicalDeviceMaintenance6FeaturesKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR -> go @PhysicalDeviceMaintenance6PropertiesKHR
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR -> go @PhysicalDeviceMaintenance7FeaturesKHR
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR -> go @PhysicalDeviceMaintenance7PropertiesKHR
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR -> go @PhysicalDeviceLayeredApiPropertiesListKHR
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR -> go @PhysicalDeviceLayeredApiVulkanPropertiesKHR
   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
@@ -2149,7 +2292,8 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV -> go @PhysicalDeviceExclusiveScissorFeaturesNV
   STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV -> go @PipelineViewportExclusiveScissorStateCreateInfoNV
   STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV -> go @PhysicalDeviceCornerSampledImageFeaturesNV
-  STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV -> go @PhysicalDeviceComputeShaderDerivativesFeaturesNV
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR -> go @PhysicalDeviceComputeShaderDerivativesFeaturesKHR
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR -> go @PhysicalDeviceComputeShaderDerivativesPropertiesKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV -> go @PhysicalDeviceShaderImageFootprintFeaturesNV
   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV -> go @PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
   STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV -> go @PhysicalDeviceCopyMemoryIndirectFeaturesNV
@@ -2297,12 +2441,21 @@
   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_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT -> go @PhysicalDeviceLegacyVertexAttributesFeaturesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT -> go @PhysicalDeviceLegacyVertexAttributesPropertiesEXT
   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
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT -> go @PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT -> go @PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
+  STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT -> go @GeneratedCommandsPipelineInfoEXT
+  STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT -> go @GeneratedCommandsShaderInfoEXT
   STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT -> go @PipelineViewportDepthClipControlCreateInfoEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT -> go @PhysicalDeviceDepthClampControlFeaturesEXT
+  STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT -> go @PipelineViewportDepthClampControlCreateInfoEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT -> go @PhysicalDeviceVertexInputDynamicStateFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV -> go @PhysicalDeviceExternalMemoryRDMAFeaturesNV
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR -> go @PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT -> go @PhysicalDeviceColorWriteEnableFeaturesEXT
   STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT -> go @PipelineColorWriteCreateInfoEXT
   STRUCTURE_TYPE_MEMORY_BARRIER_2 -> go @MemoryBarrier2
@@ -2324,6 +2477,7 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT -> go @PhysicalDeviceProvokingVertexFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT -> go @PhysicalDeviceProvokingVertexPropertiesEXT
   STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT -> go @PipelineRasterizationProvokingVertexStateCreateInfoEXT
+  STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX -> go @CuModuleTexturingModeCreateInfoNVX
   STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT -> go @PhysicalDeviceDescriptorBufferFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT -> go @PhysicalDeviceDescriptorBufferPropertiesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT -> go @PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
@@ -2335,6 +2489,7 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR -> go @PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR -> go @PhysicalDeviceFragmentShaderBarycentricPropertiesKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV -> go @PhysicalDeviceRayTracingMotionBlurFeaturesNV
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV -> go @PhysicalDeviceRayTracingValidationFeaturesNV
   STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("struct type STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV contains an undiscriminated union (DeviceOrHostAddressConstKHR) and can't be safely peeked") Nothing Nothing
   STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV -> go @AccelerationStructureMotionInfoNV
   STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA -> go @ImportMemoryBufferCollectionFUCHSIA
@@ -2356,6 +2511,9 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT -> go @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV -> go @PhysicalDeviceLinearColorAttachmentFeaturesNV
   STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT -> go @PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR -> go @PhysicalDevicePipelineBinaryFeaturesKHR
+  STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR -> go @DevicePipelineBinaryInternalCacheControlKHR
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR -> go @PhysicalDevicePipelineBinaryPropertiesKHR
   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
@@ -2451,6 +2609,7 @@
   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_ANTI_LAG_FEATURES_AMD -> go @PhysicalDeviceAntiLagFeaturesAMD
   STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR -> go @BindMemoryStatusKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM -> go @PhysicalDeviceCubicClampFeaturesQCOM
   STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM -> go @PhysicalDeviceYcbcrDegammaFeaturesQCOM
@@ -2488,6 +2647,21 @@
   STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR -> go @RenderingAttachmentLocationInfoKHR
   STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR -> go @RenderingInputAttachmentIndexInfoKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR -> go @PhysicalDeviceShaderQuadControlFeaturesKHR
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV -> go @PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT -> go @PhysicalDeviceMapMemoryPlacedFeaturesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT -> go @PhysicalDeviceMapMemoryPlacedPropertiesEXT
+  STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT -> go @MemoryMapPlacedInfoEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV -> go @PhysicalDeviceRawAccessChainsFeaturesNV
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV -> go @PhysicalDeviceCommandBufferInheritanceFeaturesNV
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA -> go @PhysicalDeviceImageAlignmentControlFeaturesMESA
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA -> go @PhysicalDeviceImageAlignmentControlPropertiesMESA
+  STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA -> go @ImageAlignmentControlCreateInfoMESA
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT -> go @PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT -> go @PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV -> go @PhysicalDeviceCooperativeMatrix2FeaturesNV
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV -> go @PhysicalDeviceCooperativeMatrix2PropertiesNV
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI -> go @PhysicalDeviceHdrVividFeaturesHUAWEI
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT -> go @PhysicalDeviceVertexAttributeRobustnessFeaturesEXT
   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
@@ -2543,8 +2717,11 @@
 infix 6 ::&
 {-# complete (::&) :: BufferUsageFlags2CreateInfoKHR #-}
 {-# complete (::&) :: ShaderModuleCreateInfo #-}
+{-# complete (::&) :: ComputePipelineIndirectBufferInfoNV #-}
 {-# complete (::&) :: PipelineCreateFlags2CreateInfoKHR #-}
+{-# complete (::&) :: PipelineBinaryInfoKHR #-}
 {-# complete (::&) :: PipelineLayoutCreateInfo #-}
+{-# complete (::&) :: DisplaySurfaceStereoCreateInfoNV #-}
 {-# complete (::&) :: DisplayPresentInfoKHR #-}
 {-# complete (::&) :: DebugReportCallbackCreateInfoEXT #-}
 {-# complete (::&) :: ValidationFlagsEXT #-}
@@ -2606,6 +2783,7 @@
 {-# complete (::&) :: PhysicalDevicePresentIdFeaturesKHR #-}
 {-# complete (::&) :: PresentIdKHR #-}
 {-# complete (::&) :: PhysicalDevicePresentWaitFeaturesKHR #-}
+{-# complete (::&) :: HdrVividDynamicMetadataHUAWEI #-}
 {-# complete (::&) :: DisplayNativeHdrSurfaceCapabilitiesAMD #-}
 {-# complete (::&) :: SwapchainDisplayNativeHdrCreateInfoAMD #-}
 {-# complete (::&) :: PresentTimesInfoGOOGLE #-}
@@ -2615,6 +2793,7 @@
 {-# complete (::&) :: PipelineDiscardRectangleStateCreateInfoEXT #-}
 {-# complete (::&) :: PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX #-}
 {-# complete (::&) :: RenderPassInputAttachmentAspectCreateInfo #-}
+{-# complete (::&) :: DisplayModeStereoPropertiesNV #-}
 {-# complete (::&) :: SharedPresentSurfaceCapabilitiesKHR #-}
 {-# complete (::&) :: PhysicalDevice16BitStorageFeatures #-}
 {-# complete (::&) :: PhysicalDeviceSubgroupProperties #-}
@@ -2659,6 +2838,10 @@
 {-# complete (::&) :: PhysicalDeviceMaintenance5PropertiesKHR #-}
 {-# complete (::&) :: PhysicalDeviceMaintenance6FeaturesKHR #-}
 {-# complete (::&) :: PhysicalDeviceMaintenance6PropertiesKHR #-}
+{-# complete (::&) :: PhysicalDeviceMaintenance7FeaturesKHR #-}
+{-# complete (::&) :: PhysicalDeviceMaintenance7PropertiesKHR #-}
+{-# complete (::&) :: PhysicalDeviceLayeredApiPropertiesListKHR #-}
+{-# complete (::&) :: PhysicalDeviceLayeredApiVulkanPropertiesKHR #-}
 {-# complete (::&) :: PhysicalDeviceShaderDrawParametersFeatures #-}
 {-# complete (::&) :: PhysicalDeviceShaderFloat16Int8Features #-}
 {-# complete (::&) :: PhysicalDeviceFloatControlsProperties #-}
@@ -2714,7 +2897,8 @@
 {-# complete (::&) :: PhysicalDeviceExclusiveScissorFeaturesNV #-}
 {-# complete (::&) :: PipelineViewportExclusiveScissorStateCreateInfoNV #-}
 {-# complete (::&) :: PhysicalDeviceCornerSampledImageFeaturesNV #-}
-{-# complete (::&) :: PhysicalDeviceComputeShaderDerivativesFeaturesNV #-}
+{-# complete (::&) :: PhysicalDeviceComputeShaderDerivativesFeaturesKHR #-}
+{-# complete (::&) :: PhysicalDeviceComputeShaderDerivativesPropertiesKHR #-}
 {-# complete (::&) :: PhysicalDeviceShaderImageFootprintFeaturesNV #-}
 {-# complete (::&) :: PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV #-}
 {-# complete (::&) :: PhysicalDeviceCopyMemoryIndirectFeaturesNV #-}
@@ -2862,12 +3046,21 @@
 {-# complete (::&) :: PhysicalDeviceImage2DViewOf3DFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceImageSlicedViewOf3DFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT #-}
+{-# complete (::&) :: PhysicalDeviceLegacyVertexAttributesFeaturesEXT #-}
+{-# complete (::&) :: PhysicalDeviceLegacyVertexAttributesPropertiesEXT #-}
 {-# complete (::&) :: PhysicalDeviceMutableDescriptorTypeFeaturesEXT #-}
 {-# complete (::&) :: MutableDescriptorTypeCreateInfoEXT #-}
 {-# complete (::&) :: PhysicalDeviceDepthClipControlFeaturesEXT #-}
+{-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT #-}
+{-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT #-}
+{-# complete (::&) :: GeneratedCommandsPipelineInfoEXT #-}
+{-# complete (::&) :: GeneratedCommandsShaderInfoEXT #-}
 {-# complete (::&) :: PipelineViewportDepthClipControlCreateInfoEXT #-}
+{-# complete (::&) :: PhysicalDeviceDepthClampControlFeaturesEXT #-}
+{-# complete (::&) :: PipelineViewportDepthClampControlCreateInfoEXT #-}
 {-# complete (::&) :: PhysicalDeviceVertexInputDynamicStateFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceExternalMemoryRDMAFeaturesNV #-}
+{-# complete (::&) :: PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR #-}
 {-# complete (::&) :: PhysicalDeviceColorWriteEnableFeaturesEXT #-}
 {-# complete (::&) :: PipelineColorWriteCreateInfoEXT #-}
 {-# complete (::&) :: MemoryBarrier2 #-}
@@ -2889,6 +3082,7 @@
 {-# complete (::&) :: PhysicalDeviceProvokingVertexFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceProvokingVertexPropertiesEXT #-}
 {-# complete (::&) :: PipelineRasterizationProvokingVertexStateCreateInfoEXT #-}
+{-# complete (::&) :: CuModuleTexturingModeCreateInfoNVX #-}
 {-# complete (::&) :: PhysicalDeviceDescriptorBufferFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceDescriptorBufferPropertiesEXT #-}
 {-# complete (::&) :: PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT #-}
@@ -2900,6 +3094,7 @@
 {-# complete (::&) :: PhysicalDeviceFragmentShaderBarycentricFeaturesKHR #-}
 {-# complete (::&) :: PhysicalDeviceFragmentShaderBarycentricPropertiesKHR #-}
 {-# complete (::&) :: PhysicalDeviceRayTracingMotionBlurFeaturesNV #-}
+{-# complete (::&) :: PhysicalDeviceRayTracingValidationFeaturesNV #-}
 {-# complete (::&) :: AccelerationStructureGeometryMotionTrianglesDataNV #-}
 {-# complete (::&) :: AccelerationStructureMotionInfoNV #-}
 {-# complete (::&) :: ImportMemoryBufferCollectionFUCHSIA #-}
@@ -2921,6 +3116,9 @@
 {-# complete (::&) :: PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceLinearColorAttachmentFeaturesNV #-}
 {-# complete (::&) :: PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT #-}
+{-# complete (::&) :: PhysicalDevicePipelineBinaryFeaturesKHR #-}
+{-# complete (::&) :: DevicePipelineBinaryInternalCacheControlKHR #-}
+{-# complete (::&) :: PhysicalDevicePipelineBinaryPropertiesKHR #-}
 {-# complete (::&) :: PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT #-}
 {-# complete (::&) :: GraphicsPipelineLibraryCreateInfoEXT #-}
 {-# complete (::&) :: PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE #-}
@@ -3016,6 +3214,7 @@
 {-# complete (::&) :: PhysicalDeviceShaderEnqueuePropertiesAMDX #-}
 {-# complete (::&) :: PhysicalDeviceShaderEnqueueFeaturesAMDX #-}
 {-# complete (::&) :: PipelineShaderStageNodeCreateInfoAMDX #-}
+{-# complete (::&) :: PhysicalDeviceAntiLagFeaturesAMD #-}
 {-# complete (::&) :: BindMemoryStatusKHR #-}
 {-# complete (::&) :: PhysicalDeviceCubicClampFeaturesQCOM #-}
 {-# complete (::&) :: PhysicalDeviceYcbcrDegammaFeaturesQCOM #-}
@@ -3053,6 +3252,21 @@
 {-# complete (::&) :: RenderingAttachmentLocationInfoKHR #-}
 {-# complete (::&) :: RenderingInputAttachmentIndexInfoKHR #-}
 {-# complete (::&) :: PhysicalDeviceShaderQuadControlFeaturesKHR #-}
+{-# complete (::&) :: PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV #-}
+{-# complete (::&) :: PhysicalDeviceMapMemoryPlacedFeaturesEXT #-}
+{-# complete (::&) :: PhysicalDeviceMapMemoryPlacedPropertiesEXT #-}
+{-# complete (::&) :: MemoryMapPlacedInfoEXT #-}
+{-# complete (::&) :: PhysicalDeviceRawAccessChainsFeaturesNV #-}
+{-# complete (::&) :: PhysicalDeviceCommandBufferInheritanceFeaturesNV #-}
+{-# complete (::&) :: PhysicalDeviceImageAlignmentControlFeaturesMESA #-}
+{-# complete (::&) :: PhysicalDeviceImageAlignmentControlPropertiesMESA #-}
+{-# complete (::&) :: ImageAlignmentControlCreateInfoMESA #-}
+{-# complete (::&) :: PhysicalDeviceShaderReplicatedCompositesFeaturesEXT #-}
+{-# complete (::&) :: PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT #-}
+{-# complete (::&) :: PhysicalDeviceCooperativeMatrix2FeaturesNV #-}
+{-# complete (::&) :: PhysicalDeviceCooperativeMatrix2PropertiesNV #-}
+{-# complete (::&) :: PhysicalDeviceHdrVividFeaturesHUAWEI #-}
+{-# complete (::&) :: PhysicalDeviceVertexAttributeRobustnessFeaturesEXT #-}
 
 -- | 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
+                                   , MAX_PIPELINE_BINARY_KEY_SIZE_KHR
+                                   , pattern MAX_PIPELINE_BINARY_KEY_SIZE_KHR
                                    , MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR
                                    , pattern MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR
                                    , SHADER_INDEX_UNUSED_AMDX
@@ -364,6 +366,17 @@
 pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = 32
 
 
+type MAX_PIPELINE_BINARY_KEY_SIZE_KHR = 32
+
+-- | VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR - Maximum length of binary key
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>
+pattern MAX_PIPELINE_BINARY_KEY_SIZE_KHR :: forall a . Integral a => a
+pattern MAX_PIPELINE_BINARY_KEY_SIZE_KHR = 32
+
+
 type MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR = 7
 
 -- No documentation found for TopLevel "VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR"
@@ -386,6 +399,8 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_USE_64_BIT_PTR_DEFINES VK_USE_64_BIT_PTR_DEFINES>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>
 pattern NULL_HANDLE :: IsHandle a => a
 pattern NULL_HANDLE <- ((== zero) -> True)
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
@@ -58,15 +58,15 @@
 -- == Valid Usage
 --
 -- -   #VUID-VkAllocationCallbacks-pfnAllocation-00632# @pfnAllocation@
---     /must/ be a valid pointer to a valid user-defined
+--     /must/ be a valid pointer to a valid application-defined
 --     'Vulkan.Core10.FuncPointers.PFN_vkAllocationFunction'
 --
 -- -   #VUID-VkAllocationCallbacks-pfnReallocation-00633# @pfnReallocation@
---     /must/ be a valid pointer to a valid user-defined
+--     /must/ be a valid pointer to a valid application-defined
 --     'Vulkan.Core10.FuncPointers.PFN_vkReallocationFunction'
 --
 -- -   #VUID-VkAllocationCallbacks-pfnFree-00634# @pfnFree@ /must/ be a
---     valid pointer to a valid user-defined
+--     valid pointer to a valid application-defined
 --     'Vulkan.Core10.FuncPointers.PFN_vkFreeFunction'
 --
 -- -   #VUID-VkAllocationCallbacks-pfnInternalAllocation-00635# If either
@@ -115,12 +115,15 @@
 -- 'Vulkan.Core10.Image.createImage',
 -- 'Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface.createImagePipeSurfaceFUCHSIA',
 -- 'Vulkan.Core10.ImageView.createImageView',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.createIndirectCommandsLayoutEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.createIndirectCommandsLayoutNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.createIndirectExecutionSetEXT',
 -- 'Vulkan.Core10.DeviceInitialization.createInstance',
 -- 'Vulkan.Extensions.VK_MVK_macos_surface.createMacOSSurfaceMVK',
 -- 'Vulkan.Extensions.VK_EXT_metal_surface.createMetalSurfaceEXT',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.createMicromapEXT',
 -- 'Vulkan.Extensions.VK_NV_optical_flow.createOpticalFlowSessionNV',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.createPipelineBinariesKHR',
 -- 'Vulkan.Core10.PipelineCache.createPipelineCache',
 -- 'Vulkan.Core10.PipelineLayout.createPipelineLayout',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.createPrivateDataSlot',
@@ -171,11 +174,14 @@
 -- 'Vulkan.Core10.Pass.destroyFramebuffer',
 -- 'Vulkan.Core10.Image.destroyImage',
 -- 'Vulkan.Core10.ImageView.destroyImageView',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.destroyIndirectCommandsLayoutEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.destroyIndirectCommandsLayoutNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.destroyIndirectExecutionSetEXT',
 -- 'Vulkan.Core10.DeviceInitialization.destroyInstance',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.destroyMicromapEXT',
 -- 'Vulkan.Extensions.VK_NV_optical_flow.destroyOpticalFlowSessionNV',
 -- 'Vulkan.Core10.Pipeline.destroyPipeline',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.destroyPipelineBinaryKHR',
 -- 'Vulkan.Core10.PipelineCache.destroyPipelineCache',
 -- 'Vulkan.Core10.PipelineLayout.destroyPipelineLayout',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.destroyPrivateDataSlot',
@@ -195,7 +201,8 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR>,
 -- 'Vulkan.Core10.Memory.freeMemory',
 -- 'Vulkan.Extensions.VK_EXT_display_control.registerDeviceEventEXT',
--- 'Vulkan.Extensions.VK_EXT_display_control.registerDisplayEventEXT'
+-- 'Vulkan.Extensions.VK_EXT_display_control.registerDisplayEventEXT',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.releaseCapturedPipelineDataKHR'
 data AllocationCallbacks = AllocationCallbacks
   { -- No documentation found for Nested "VkAllocationCallbacks" "pUserData"
     userData :: Ptr ()
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
@@ -105,6 +105,14 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCreateBuffer-device-09664# @device@ /must/ support at least
+--     one queue family with one of the @VK_QUEUE_VIDEO_ENCODE_BIT_KHR@,
+--     @VK_QUEUE_VIDEO_DECODE_BIT_KHR@,
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_SPARSE_BINDING_BIT',
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_TRANSFER_BIT',
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', or
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' capabilities
+--
 -- -   #VUID-vkCreateBuffer-flags-00911# If the @flags@ member of
 --     @pCreateInfo@ includes
 --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT',
@@ -313,9 +321,9 @@
 --
 -- = Description
 --
--- If a
+-- If the @pNext@ chain includes a
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
--- structure is present in the @pNext@ chain,
+-- structure,
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'::@usage@
 -- from that structure is used instead of @usage@ from this structure.
 --
@@ -324,13 +332,13 @@
 -- -   #VUID-VkBufferCreateInfo-None-09499# If the @pNext@ chain does not
 --     include a
 --     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
---     structure, @usage@ must be a valid combination of
+--     structure, @usage@ /must/ be a valid combination of
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' values
 --
 -- -   #VUID-VkBufferCreateInfo-None-09500# If the @pNext@ chain does not
 --     include a
 --     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
---     structure, @usage@ must not be 0
+--     structure, @usage@ /must/ not be 0
 --
 -- -   #VUID-VkBufferCreateInfo-size-00912# @size@ /must/ be greater than
 --     @0@
@@ -457,6 +465,15 @@
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-videoMaintenance1 videoMaintenance1>
 --     /must/ be enabled
 --
+-- -   #VUID-VkBufferCreateInfo-pNext-10249# If the @pNext@ chain includes
+--     a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>
+--     structure and for any element of its @pProfiles@ member
+--     @videoCodecOperation@ is
+--     @VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR@, then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-videoEncodeAV1 videoEncodeAV1>
+--     feature /must/ be enabled
+--
 -- -   #VUID-VkBufferCreateInfo-size-06409# @size@ /must/ be less than or
 --     equal to
 --     'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties'::@maxBufferSize@
@@ -508,6 +525,32 @@
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'
 --     or
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+-- -   #VUID-VkBufferCreateInfo-flags-09641# If @flags@ includes
+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_PROTECTED_BIT',
+--     then @usage@ /must/ not contain any of the following bits
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR'
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR'
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR'
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT'
 --
 -- == Valid Usage (Implicit)
 --
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
@@ -84,6 +84,13 @@
 
 -- | vkCreateBufferView - Create a new buffer view object
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCreateBufferView-device-09665# @device@ /must/ support at
+--     least one queue family with one of the
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT' or
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' capabilities
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCreateBufferView-device-parameter# @device@ /must/ be a
@@ -358,9 +365,9 @@
 --     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'
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR'
 --     or
---     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR'
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR'
 --
 -- -   #VUID-VkBufferViewCreateInfo-pNext-08781# If the @pNext@ chain
 --     includes a
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
@@ -68,7 +68,7 @@
 import Vulkan.CStruct.Extends (peekSomeCStruct)
 import Vulkan.CStruct.Extends (withSomeCStruct)
 import Vulkan.NamedType ((:::))
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (AttachmentSampleCountInfoAMD)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_mixed_attachment_samples (AttachmentSampleCountInfoAMD)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.CStruct.Extends (Chain)
 import Vulkan.Core10.Handles (CommandBuffer)
@@ -100,7 +100,7 @@
 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 {-# SOURCE #-} Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (MultiviewPerViewAttributesInfoNVX)
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.CStruct.Extends (PokeChain)
@@ -145,8 +145,6 @@
 -- objects from this command, set all entries of the @pCommandBuffers@
 -- array to @NULL@ and return the error.
 --
--- Note
---
 -- Filling @pCommandBuffers@ with @NULL@ values on failure is an exception
 -- to the default error behavior that output parameters will have undefined
 -- contents.
@@ -458,8 +456,6 @@
 -- used video compression standard do not adhere to the capabilities of the
 -- video compression standard or the implementation.
 --
--- Note
---
 -- Applications /should/ not rely on the
 -- @VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR@ error being returned by any
 -- command as a means to verify Video Std parameters, as implementations
@@ -752,13 +748,13 @@
 -- -   #VUID-VkCommandBufferInheritanceInfo-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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD',
 --     'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT',
 --     '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',
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX',
+--     'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.MultiviewPerViewAttributesInfoNVX',
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR',
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
@@ -797,8 +793,6 @@
     -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' if the framebuffer is not
     -- known.
     --
-    -- Note
-    --
     -- Specifying the exact framebuffer that the secondary command buffer will
     -- be executed with /may/ result in better performance at command buffer
     -- execution time.
@@ -947,9 +941,9 @@
 --     the @renderPass@ member of @pInheritanceInfo@ is
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @pNext@ chain of
 --     @pInheritanceInfo@ includes a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
 --     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
 --     structure, the @colorAttachmentCount@ member of that structure
 --     /must/ be equal to the value of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@colorAttachmentCount@
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
@@ -1428,25406 +1428,25640 @@
 -- 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-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://www.khronos.org/registry/vulkan/specs/1.2-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-pDescriptorSets-06563# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-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'
---
--- -   #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361#
---     @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s
---     parent 'Vulkan.Core10.Handles.CommandPool'’s queue family
---
--- == 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
---
--- = Description
---
--- If the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance6 maintenance6>
--- feature is enabled, @buffer@ /can/ be
--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'. If @buffer@ is
--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
--- feature is enabled, every index fetched results in a value of zero.
---
--- == 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_KHR', the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-indexTypeUint8 indexTypeUint8>
---     feature /must/ be enabled
---
--- -   #VUID-vkCmdBindIndexBuffer-None-09493# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance6 maintenance6>
---     is not enabled, @buffer@ /must/ not be
---     'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdBindIndexBuffer-buffer-09494# If @buffer@ is
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', offset /must/ be zero
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdBindIndexBuffer-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdBindIndexBuffer-buffer-parameter# If @buffer@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @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@ 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',
--- '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as
---     described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', '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_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', '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_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', '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_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', '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the @VK_NV_clip_space_w_scaling@
---     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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the @VK_NV_clip_space_w_scaling@
---     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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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
---     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
---     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 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'
---     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-rasterizerDiscardEnable-09416# If the
---     @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or
---     @VK_EXT_line_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.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_KHR_line_rasterization@ or
---     @VK_EXT_line_rasterization@ extension is enabled, and 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_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.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_KHR_line_rasterization@ or
---     @VK_EXT_line_rasterization@ extension is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or
---     @VK_EXT_line_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.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_KHR_line_rasterization@ or
---     @VK_EXT_line_rasterization@ extension is enabled, and 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_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.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_KHR_line_rasterization@ or
---     @VK_EXT_line_rasterization@ extension is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08672# If the @VK_KHR_line_rasterization@ or
---     @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# 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.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-rasterizerDiscardEnable-09419# 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, 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 a shader object is
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the @VK_NV_viewport_swizzle@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-None-09548# If the current render pass was begun
---     with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDraw-None-09549# If the current render pass was begun
---     with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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 there is a shader object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 without 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 there is a shader object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader object bound to
---     the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader object bound to
---     the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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
---     the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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
---     the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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-04875# If there is a shader object 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
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
---     or 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 there is a shader object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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'
---
--- -   #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
---
--- -   #VUID-vkCmdDraw-pNext-09461# If the bound graphics pipeline state
---     was created with
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
---     in the @pNext@ chain of
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
---     any member of
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
---     has a value other than @1@ in @divisor@, and
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
---     /must/ be @0@
---
--- -   #VUID-vkCmdDraw-None-09462# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
---     are used for drawing or the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, any member of the
---     @pVertexBindingDescriptions@ parameter to the
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     call that sets this dynamic state has a value other than @1@ in
---     @divisor@, and
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
---     /must/ be @0@
---
--- == 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_KHR' 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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', '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_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', '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_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', '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_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', '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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
---     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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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
---     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'
---     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-rasterizerDiscardEnable-09416# If the
---     @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# 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.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-rasterizerDiscardEnable-09419# 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, 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-None-09548# If the current render pass was
---     begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawIndexed-None-09549# If the current render pass was
---     begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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 there is a shader object bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 without 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 there is a shader object bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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-04875# If there is a shader object 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
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
---     or 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 there is a shader object bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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-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# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance6 maintenance6>
---     is not enabled, a valid 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-pNext-09461# If the bound graphics pipeline
---     state was created with
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
---     in the @pNext@ chain of
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
---     any member of
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
---     has a value other than @1@ in @divisor@, and
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
---     /must/ be @0@
---
--- -   #VUID-vkCmdDrawIndexed-None-09462# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
---     are used for drawing or the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, any member of the
---     @pVertexBindingDescriptions@ parameter to the
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     call that sets this dynamic state has a value other than @1@ in
---     @divisor@, and
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
---     /must/ be @0@
---
--- -   #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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', '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_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', '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_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', '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_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', '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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
---     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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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
---     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'
---     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-rasterizerDiscardEnable-09416# If the
---     @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# 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.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-rasterizerDiscardEnable-09419# 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, 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-09548# If the current render pass was
---     begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawIndirect-None-09549# If the current render pass was
---     begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 without 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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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-04875# If there is a shader object
---     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
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
---     or 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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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-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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', '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_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', '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_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', '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_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', '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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 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'
---     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-rasterizerDiscardEnable-09416# If the
---     @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# 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.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-rasterizerDiscardEnable-09419# 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, 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-09548# If the current render
---     pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-09549# If the current render
---     pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 without 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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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-04875# If there is a shader
---     object 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
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
---     or 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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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-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# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance6 maintenance6>
---     is not enabled, a valid 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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as
---     described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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-srcImage-09460# If @srcImage@ and @dstImage@
---     are the same, and any elements of @pRegions@ contains the
---     @srcSubresource@ and @dstSubresource@ with matching @mipLevel@ and
---     overlapping array layers, then the @srcImageLayout@ and
---     @dstImageLayout@ /must/ be
---     '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_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-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# If
---     @srcSubresource.layerCount@ is not
---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
---     @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# If
---     @dstSubresource.layerCount@ is not
---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
---     @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-srcImage-09459# If @srcImage@ and @dstImage@
---     are the same, and an elements of @pRegions@ contains the
---     @srcSubresource@ and @dstSubresource@ with matching @mipLevel@ and
---     overlapping array layers, then the @srcImageLayout@ and
---     @dstImageLayout@ /must/ be
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
---
--- -   #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# If
---     @srcSubresource.layerCount@ is not
---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
---     @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# If
---     @srcSubresource.layerCount@ is not
---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
---     @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# If
---     @imageSubresource.layerCount@ is not
---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
---     @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-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# If
---     @imageSubresource.layerCount@ is not
---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
---     @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-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-colorAttachment-09503# The
---     @colorAttachment@ member of each element of @pAttachments@ /must/
---     not identify a color attachment that is currently mapped to
---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' in @commandBuffer@
---     via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'
---
--- -   #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# If
---     @srcSubresource.layerCount@ is not
---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
---     @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# If
---     @dstSubresource.layerCount@ is not
---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
---     @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-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
---     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-None-09553# If 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-shaderTileImageStencilReadAccess shaderTileImageStencilReadAccess>,
---     or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageDepthReadAccess shaderTileImageDepthReadAccess>
---     features are enabled, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingLocalRead dynamicRenderingLocalRead>
---     feature is not enabled, 'cmdPipelineBarrier' /must/ not be called
---     within a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---
--- -   #VUID-vkCmdPipelineBarrier-None-09554# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingLocalRead dynamicRenderingLocalRead>
---     feature is not enabled, and 'cmdPipelineBarrier' is called within a
---     render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     there /must/ be no buffer or image memory barriers specified by this
---     command
---
--- -   #VUID-vkCmdPipelineBarrier-image-09555# If 'cmdPipelineBarrier' is
---     called within a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @image@ member of any image memory barrier is used as an
---     attachment in the current render pass instance, it /must/ be in the
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR'
---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' layout
---
--- -   #VUID-vkCmdPipelineBarrier-srcStageMask-09556# If
---     'cmdPipelineBarrier' is called within a render pass instance started
---     with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     this command /must/ only specify
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>
---     in @srcStageMask@ and @dstStageMask@
---
--- -   #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-None-08370# If there is a bound video session,
---     then it /must/ not have been created with
---     @VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR@
---
--- -   #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-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
---
--- == 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-09436# @firstQuery@ /must/ be
---     less than the number of queries in @queryPool@
---
--- -   #VUID-vkCmdResetQueryPool-firstQuery-09437# 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_KHR_calibrated_timestamps@ or
--- @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_KHR_calibrated_timestamps.TIME_DOMAIN_DEVICE_KHR'
--- <VkTimeDomainKHR.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_KHR_calibrated_timestamps@ or
--- @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.
---
--- If the status value written is negative, indicating that the operations
--- within the query completed unsuccessfully, then all other results
--- written by this command are undefined unless otherwise specified for any
--- of the results of the used query type.
---
--- 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-firstQuery-09436# @firstQuery@
---     /must/ be less than the number of queries in @queryPool@
---
--- -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-09437# The sum of
---     @firstQuery@ and @queryCount@ /must/ be less than or equal to the
---     number of queries in @queryPool@
---
--- -   #VUID-vkCmdCopyQueryPoolResults-queryCount-09438# If @queryCount@ is
---     greater than 1, @stride@ /must/ not be zero
---
--- -   #VUID-vkCmdCopyQueryPoolResults-queryType-09439# 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-09440# 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-09441# If the @queryType@
---     used to create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
---     the @queryPool@ /must/ have been recorded once for each pass as
---     retrieved via a call to
---     'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'
---
--- -   #VUID-vkCmdCopyQueryPoolResults-queryType-09442# 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-09443# 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-09402# All queries used by the
---     command /must/ not be uninitialized when the command is executed
---
--- -   #VUID-vkCmdCopyQueryPoolResults-dstOffset-00819# @dstOffset@ /must/
---     be less than the size of @dstBuffer@
---
--- -   #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-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-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-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
---
--- -   #VUID-vkCmdBeginRenderPass-initialLayout-09537# 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_RENDERING_LOCAL_READ_KHR'
---     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
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT', or
---     both
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'
---     and either of
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'
---     or
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_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'
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-09504# If
---     'cmdExecuteCommands' is being called within a render pass instance
---     begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the color attachment mapping state specified by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'
---     in the inheritance info of each element of @pCommandBuffers@ and in
---     the current state of @commandBuffer@ /must/ match
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-09505# If
---     'cmdExecuteCommands' is being called within a render pass instance
---     begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the input attachment mapping state specified by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---     in the inheritance info of each element of @pCommandBuffers@ and in
---     the current state of @commandBuffer@ /must/ match
---
--- == 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-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-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 the @pNext@ chain does
---     not contain
---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
---     or its @deviceRenderAreaCount@ member is equal to 0,
---     @renderArea.extent.width@ /must/ be greater than 0
---
--- -   #VUID-VkRenderPassBeginInfo-None-08997# 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.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
---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',
---     @renderArea.offset@ /must/ equal (0,0)
---
--- -   #VUID-VkRenderPassBeginInfo-pNext-02870# If the @pNext@ chain
---     includes
---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',
---     @renderArea.extent@ transformed by
---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@
---     /must/ equal the @framebuffer@ dimensions
---
--- -   #VUID-VkRenderPassBeginInfo-perViewRenderAreaCount-07859# If the
---     @perViewRenderAreaCount@ member of a
---     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'
---     structure included in the @pNext@ chain is not @0@, then the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-render-areas multiviewPerViewRenderAreas>
---     feature /must/ be enabled.
---
--- -   #VUID-VkRenderPassBeginInfo-perViewRenderAreaCount-07860# If the
---     @perViewRenderAreaCount@ member of a
---     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'
---     structure included in the @pNext@ chain is not @0@, then
---     @renderArea@ /must/ specify a render area that includes the union of
---     all per view render areas.
---
--- -   #VUID-VkRenderPassBeginInfo-pNext-09539# If the @pNext@ chain
---     contains a
---     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM'
---     structure, the union of stripe areas defined by the elements of
---     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeInfoARM'::@pStripeInfos@
---     /must/ cover the @renderArea@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkRenderPassBeginInfo-sType-sType# @sType@ /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO'
---
--- -   #VUID-VkRenderPassBeginInfo-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.DeviceGroupRenderPassBeginInfo',
---     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM',
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',
---     'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',
---     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM',
---     or
---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'
---
--- -   #VUID-VkRenderPassBeginInfo-sType-unique# The @sType@ value of each
---     struct in the @pNext@ chain /must/ be unique
---
--- -   #VUID-VkRenderPassBeginInfo-renderPass-parameter# @renderPass@
---     /must/ be a valid 'Vulkan.Core10.Handles.RenderPass' handle
---
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-parameter# @framebuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.Framebuffer' handle
---
--- -   #VUID-VkRenderPassBeginInfo-commonparent# Both of @framebuffer@, and
---     @renderPass@ /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>,
--- 'ClearValue', 'Vulkan.Core10.Handles.Framebuffer',
--- 'Vulkan.Core10.FundamentalTypes.Rect2D',
--- 'Vulkan.Core10.Handles.RenderPass',
--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBeginRenderPass',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdBeginRenderPass2',
--- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdBeginRenderPass2KHR'
-data RenderPassBeginInfo (es :: [Type]) = RenderPassBeginInfo
-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
-    next :: Chain es
-  , -- | @renderPass@ is the render pass to begin an instance of.
-    renderPass :: RenderPass
-  , -- | @framebuffer@ is the framebuffer containing the attachments that are
-    -- used with the render pass.
-    framebuffer :: Framebuffer
-  , -- | @renderArea@ is the render area that is affected by the render pass
-    -- instance, and is described in more detail below.
-    renderArea :: Rect2D
-  , -- | @pClearValues@ is a pointer to an array of @clearValueCount@
-    -- 'ClearValue' structures containing clear values for each attachment, if
-    -- the attachment uses a @loadOp@ value of
-    -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' or if
-    -- the attachment has a depth\/stencil format and uses a @stencilLoadOp@
-    -- value of
-    -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'. The
-    -- array is indexed by attachment number. Only elements corresponding to
-    -- cleared attachments are used. Other elements of @pClearValues@ are
-    -- ignored.
-    clearValues :: Vector ClearValue
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (RenderPassBeginInfo (es :: [Type]))
-#endif
-deriving instance Show (Chain es) => Show (RenderPassBeginInfo es)
-
-instance Extensible RenderPassBeginInfo where
-  extensibleTypeName = "RenderPassBeginInfo"
-  setNext RenderPassBeginInfo{..} next' = RenderPassBeginInfo{next = next', ..}
-  getNext RenderPassBeginInfo{..} = next
-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderPassBeginInfo e => b) -> Maybe b
-  extends _ f
-    | Just Refl <- eqT @e @RenderPassStripeBeginInfoARM = Just f
-    | Just Refl <- eqT @e @MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = Just f
-    | Just Refl <- eqT @e @RenderPassTransformBeginInfoQCOM = Just f
-    | Just Refl <- eqT @e @RenderPassAttachmentBeginInfo = Just f
-    | Just Refl <- eqT @e @RenderPassSampleLocationsBeginInfoEXT = Just f
-    | Just Refl <- eqT @e @DeviceGroupRenderPassBeginInfo = Just f
-    | otherwise = Nothing
-
-instance ( Extendss RenderPassBeginInfo es
-         , PokeChain es ) => ToCStruct (RenderPassBeginInfo es) where
-  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p RenderPassBeginInfo{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)
-    pNext'' <- fmap castPtr . ContT $ withChain (next)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
-    lift $ poke ((p `plusPtr` 16 :: Ptr RenderPass)) (renderPass)
-    lift $ poke ((p `plusPtr` 24 :: Ptr Framebuffer)) (framebuffer)
-    lift $ poke ((p `plusPtr` 32 :: Ptr Rect2D)) (renderArea)
-    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (clearValues)) :: Word32))
-    pPClearValues' <- ContT $ allocaBytes @ClearValue ((Data.Vector.length (clearValues)) * 16)
-    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPClearValues' `plusPtr` (16 * (i)) :: Ptr ClearValue) (e) . ($ ())) (clearValues)
-    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr ClearValue))) (pPClearValues')
-    lift $ f
-  cStructSize = 64
-  cStructAlignment = 8
-  pokeZeroCStruct p f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)
-    pNext' <- fmap castPtr . ContT $ withZeroChain @es
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
-    lift $ poke ((p `plusPtr` 16 :: Ptr RenderPass)) (zero)
-    lift $ poke ((p `plusPtr` 24 :: Ptr Framebuffer)) (zero)
-    lift $ poke ((p `plusPtr` 32 :: Ptr Rect2D)) (zero)
-    lift $ f
-
-instance es ~ '[] => Zero (RenderPassBeginInfo es) where
-  zero = RenderPassBeginInfo
-           ()
-           zero
-           zero
-           zero
-           mempty
-
-
--- | VkClearDepthStencilValue - Structure specifying a clear depth stencil
--- value
---
--- == Valid Usage
---
--- -   #VUID-VkClearDepthStencilValue-depth-00022# Unless the
---     @VK_EXT_depth_range_unrestricted@ extension is enabled @depth@
---     /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>,
--- 'ClearValue', 'cmdClearDepthStencilImage'
-data ClearDepthStencilValue = ClearDepthStencilValue
-  { -- | @depth@ is the clear value for the depth aspect of the depth\/stencil
-    -- attachment. It is a floating-point value which is automatically
-    -- converted to the attachment’s format.
-    depth :: Float
-  , -- | @stencil@ is the clear value for the stencil aspect of the
-    -- depth\/stencil attachment. It is a 32-bit integer value which is
-    -- converted to the attachment’s format by taking the appropriate number of
-    -- LSBs.
-    stencil :: Word32
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (ClearDepthStencilValue)
-#endif
-deriving instance Show ClearDepthStencilValue
-
-instance ToCStruct ClearDepthStencilValue where
-  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p ClearDepthStencilValue{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (depth))
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (stencil)
-    f
-  cStructSize = 8
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (zero))
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct ClearDepthStencilValue where
-  peekCStruct p = do
-    depth <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))
-    stencil <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
-    pure $ ClearDepthStencilValue
-             (coerce @CFloat @Float depth) stencil
-
-instance Storable ClearDepthStencilValue where
-  sizeOf ~_ = 8
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero ClearDepthStencilValue where
-  zero = ClearDepthStencilValue
-           zero
-           zero
-
-
--- | VkClearAttachment - Structure specifying a clear attachment
---
--- == Valid Usage
---
--- -   #VUID-VkClearAttachment-aspectMask-00019# If @aspectMask@ includes
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it
---     /must/ not include
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
---
--- -   #VUID-VkClearAttachment-aspectMask-00020# @aspectMask@ /must/ not
---     include
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'
---
--- -   #VUID-VkClearAttachment-aspectMask-02246# @aspectMask@ /must/ not
---     include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index /i/
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkClearAttachment-aspectMask-parameter# @aspectMask@ /must/ be
---     a valid combination of
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values
---
--- -   #VUID-VkClearAttachment-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>,
--- 'ClearValue',
--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags',
--- 'cmdClearAttachments'
-data ClearAttachment = ClearAttachment
-  { -- | @aspectMask@ is a mask selecting the color, depth and\/or stencil
-    -- aspects of the attachment to be cleared.
-    aspectMask :: ImageAspectFlags
-  , -- | @colorAttachment@ is only meaningful if
-    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' is set
-    -- in @aspectMask@, in which case it is an index into the currently bound
-    -- color attachments.
+-- 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-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://www.khronos.org/registry/vulkan/specs/1.2-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-pDescriptorSets-06563# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>
+--     feature 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'
+--
+-- -   #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361#
+--     @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s
+--     parent 'Vulkan.Core10.Handles.CommandPool'’s queue family
+--
+-- == 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
+--
+-- = Description
+--
+-- If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance6 maintenance6>
+-- feature is enabled, @buffer@ /can/ be
+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'. If @buffer@ is
+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
+-- feature is enabled, every index fetched results in a value of zero.
+--
+-- == 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_KHR', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-indexTypeUint8 indexTypeUint8>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdBindIndexBuffer-None-09493# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance6 maintenance6>
+--     feature is not enabled, @buffer@ /must/ not be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdBindIndexBuffer-buffer-09494# If @buffer@ is
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', offset /must/ be zero
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdBindIndexBuffer-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdBindIndexBuffer-buffer-parameter# If @buffer@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @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@ 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',
+-- '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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDraw-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDraw-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDraw-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of resources that is used
+--     by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as
+--     described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified
+--     statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with type equal to any
+--     of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595# Input attachment
+--     views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDraw-pDepthInputAttachmentIndex-09596# Input attachment
+--     views accessed in a dynamic render pass via a shader object /must/
+--     have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDraw-InputAttachmentIndex-09597# If an input attachment
+--     view accessed in a dynamic render pass via a shader object has an
+--     @InputAttachmentIndex@, the @InputAttachmentIndex@ /must/ match an
+--     index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'cmdSetLineWidth' /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08618# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'cmdSetLineWidth' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 'cmdSetLineWidth' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07834# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07836# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetDepthBounds' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07837# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetStencilCompareMask' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07838# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetStencilWriteMask' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07839# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetStencilReference' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the @VK_EXT_sample_locations@
+--     extension is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-06666# If the @VK_EXT_sample_locations@
+--     extension is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07840# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07841# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07843# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07844# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07845# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07847# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07848# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-viewportCount-03417# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-scissorCount-03418# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDraw-viewportCount-03419# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which 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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08636# If the @VK_NV_clip_space_w_scaling@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-04876# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-04877# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-logicOp-04878# If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 @VK_EXT_discard_rectangles@
+--     extension is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07881# If the @VK_EXT_discard_rectangles@
+--     extension is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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 bound pipeline
+--     was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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
+--     bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07286# If the
+--     bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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
+--     bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07621# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07622# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07623# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object is bound to any
+--     graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-rasterizerDiscardEnable-09416# If the
+--     @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07636# If the @VK_EXT_provoking_vertex@
+--     extension is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07640# If the @VK_NV_clip_space_w_scaling@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07641# If the @VK_NV_viewport_swizzle@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07644# If the @VK_NV_framebuffer_mixed_samples@
+--     extension is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07645# If the @VK_NV_framebuffer_mixed_samples@
+--     extension is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07646# If the @VK_NV_framebuffer_mixed_samples@
+--     extension is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419# 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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDraw-coverageModulationTableEnable-07488# If a shader
+--     object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the @VK_NV_viewport_swizzle@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-None-09548# If the current render pass was begun
+--     with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDraw-None-09549# If the current render pass was begun
+--     with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDraw-None-09642# If the current render pass was begun
+--     with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDraw-None-09643# If the bound graphics pipeline was
+--     created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #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# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and that pipeline was created without
+--     enabling
+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'
+--     for @vertexInputs@, then 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 there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-primitiveTopology-10286# If there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have set @primitiveTopology@ to
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
+--     prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-pStrides-04913# If the bound graphics pipeline was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'
+--     dynamic state enabled, but without the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command, and the
+--     @pStrides@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDraw-None-04914# If there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command
+--
+-- -   #VUID-vkCmdDraw-Input-07939# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeRobustness vertexAttributeRobustness>
+--     is not enabled and there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 there is a shader object bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled and either the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-legacyVertexAttributes legacyVertexAttributes>
+--     feature is not enabled or the SPIR-V Type associated with a given
+--     @Input@ variable of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ is 64-bit, 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
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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-04875# If there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @primitiveTopology@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-04879# If there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-09637# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
+--     feature is not enabled, the 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',
+--     there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDraw-stage-06481# The bound graphics pipeline /must/ not
+--     have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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
+--
+-- -   #VUID-vkCmdDraw-pNext-09461# If the bound graphics pipeline state
+--     was created with
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
+--     in the @pNext@ chain of
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
+--     any member of
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
+--     has a value other than @1@ in @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-vkCmdDraw-None-09462# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
+--     are used for drawing or the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, any member of the
+--     @pVertexBindingDescriptions@ parameter to the
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     call that sets this dynamic state has a value other than @1@ in
+--     @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- == 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_KHR' 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexed-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexed-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawIndexed-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of resources that
+--     is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified
+--     statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with type equal
+--     to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595# Input
+--     attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawIndexed-pDepthInputAttachmentIndex-09596# Input
+--     attachment views accessed in a dynamic render pass via a shader
+--     object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawIndexed-InputAttachmentIndex-09597# If an input
+--     attachment view accessed in a dynamic render pass via a shader
+--     object has an @InputAttachmentIndex@, the @InputAttachmentIndex@
+--     /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'cmdSetLineWidth' /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08618# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'cmdSetLineWidth' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 'cmdSetLineWidth' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07834# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07836# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetDepthBounds' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07837# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetStencilCompareMask' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07838# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetStencilWriteMask' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07839# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetStencilReference' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the @VK_EXT_sample_locations@
+--     extension is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-06666# If the @VK_EXT_sample_locations@
+--     extension is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07840# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07841# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07843# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07844# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07845# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07847# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07848# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-viewportCount-03417# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-scissorCount-03418# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawIndexed-viewportCount-03419# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-04876# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-04877# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-logicOp-04878# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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
+--     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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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 bound
+--     pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07286# If
+--     the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07621# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07622# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07623# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09416# If the
+--     @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07636# If the @VK_EXT_provoking_vertex@
+--     extension is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07641# If the @VK_NV_viewport_swizzle@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419# 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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndexed-coverageModulationTableEnable-07488# If a
+--     shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-None-09548# If the current render pass was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09549# If the current render pass was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09642# If the current render pass was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09643# If the bound graphics pipeline
+--     was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #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# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and that pipeline was created without
+--     enabling
+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'
+--     for @vertexInputs@, then 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 there is a shader object bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-primitiveTopology-10286# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have set @primitiveTopology@ to
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
+--     prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-pStrides-04913# If the bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'
+--     dynamic state enabled, but without the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command, and the
+--     @pStrides@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawIndexed-None-04914# If there is a shader object bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command
+--
+-- -   #VUID-vkCmdDrawIndexed-Input-07939# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeRobustness vertexAttributeRobustness>
+--     is not enabled and there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled and either the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-legacyVertexAttributes legacyVertexAttributes>
+--     feature is not enabled or the SPIR-V Type associated with a given
+--     @Input@ variable of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ is 64-bit, 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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-04875# If there is a shader object bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @primitiveTopology@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-04879# If there is a shader object bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09637# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
+--     feature is not enabled, the 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',
+--     there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndexed-stage-06481# The bound graphics pipeline
+--     /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance6 maintenance6>
+--     feature is not enabled, a valid index buffer /must/ be bound
+--
+-- -   #VUID-vkCmdDrawIndexed-pNext-09461# If the bound graphics pipeline
+--     state was created with
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
+--     in the @pNext@ chain of
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
+--     any member of
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
+--     has a value other than @1@ in @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09462# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
+--     are used for drawing or the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, any member of the
+--     @pVertexBindingDescriptions@ parameter to the
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     call that sets this dynamic state has a value other than @1@ in
+--     @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawIndexed-robustBufferAccess2-08798# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
+--     feature 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirect-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirect-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawIndirect-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of resources that
+--     is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified
+--     statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with type equal
+--     to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595# Input
+--     attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawIndirect-pDepthInputAttachmentIndex-09596# Input
+--     attachment views accessed in a dynamic render pass via a shader
+--     object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawIndirect-InputAttachmentIndex-09597# If an input
+--     attachment view accessed in a dynamic render pass via a shader
+--     object has an @InputAttachmentIndex@, the @InputAttachmentIndex@
+--     /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'cmdSetLineWidth' /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08618# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'cmdSetLineWidth' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 'cmdSetLineWidth' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07834# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07836# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetDepthBounds' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07837# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetStencilCompareMask' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07838# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetStencilWriteMask' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07839# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetStencilReference' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the @VK_EXT_sample_locations@
+--     extension is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-06666# If the @VK_EXT_sample_locations@
+--     extension is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07840# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07841# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07843# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07844# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07845# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07847# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07848# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-viewportCount-03417# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-scissorCount-03418# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawIndirect-viewportCount-03419# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-04876# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-04877# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-logicOp-04878# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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
+--     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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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 bound
+--     pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07286# If
+--     the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07621# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07622# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07623# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09416# If the
+--     @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07636# If the @VK_EXT_provoking_vertex@
+--     extension is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07641# If the @VK_NV_viewport_swizzle@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419# 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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndirect-coverageModulationTableEnable-07488# If a
+--     shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-09548# If the current render pass was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09549# If the current render pass was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09642# If the current render pass was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09643# If the bound graphics pipeline
+--     was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #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# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and that pipeline was created without
+--     enabling
+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'
+--     for @vertexInputs@, then 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 there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-primitiveTopology-10286# If there is a
+--     shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have set @primitiveTopology@ to
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
+--     prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-pStrides-04913# If the bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'
+--     dynamic state enabled, but without the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command, and the
+--     @pStrides@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawIndirect-None-04914# If there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command
+--
+-- -   #VUID-vkCmdDrawIndirect-Input-07939# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeRobustness vertexAttributeRobustness>
+--     is not enabled and there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled and either the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-legacyVertexAttributes legacyVertexAttributes>
+--     feature is not enabled or the SPIR-V Type associated with a given
+--     @Input@ variable of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ is 64-bit, 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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-04875# If there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @primitiveTopology@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-04879# If there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09637# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
+--     feature is not enabled, the 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',
+--     there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndirect-stage-06481# The bound graphics pipeline
+--     /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of
+--     resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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
+--     specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with type
+--     equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595#
+--     Input attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-pDepthInputAttachmentIndex-09596#
+--     Input attachment views accessed in a dynamic render pass via a
+--     shader object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-InputAttachmentIndex-09597# If an
+--     input attachment view accessed in a dynamic render pass via a shader
+--     object has an @InputAttachmentIndex@, the @InputAttachmentIndex@
+--     /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'cmdSetLineWidth' /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08618# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'cmdSetLineWidth' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 'cmdSetLineWidth' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07834# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07836# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetDepthBounds' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07837# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetStencilCompareMask' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07838# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetStencilWriteMask' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07839# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'cmdSetStencilReference' /must/ have been called and not
+--     subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07840# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07841# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07843# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07844# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07845# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07847# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07848# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-03417# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-scissorCount-03418# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-03419# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04876# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04877# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-logicOp-04878# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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
+--     bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07621# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07622# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07623# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09416# If the
+--     @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# If a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419# 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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-coverageModulationTableEnable-07488#
+--     If a shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-09548# If the current render
+--     pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09549# If the current render
+--     pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09642# If the current render
+--     pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09643# If the bound graphics
+--     pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #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# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and that pipeline was created without
+--     enabling
+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'
+--     for @vertexInputs@, then 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 there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-primitiveTopology-10286# If there is
+--     a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have set @primitiveTopology@ to
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
+--     prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-pStrides-04913# If the bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'
+--     dynamic state enabled, but without the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command, and the
+--     @pStrides@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04914# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-Input-07939# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeRobustness vertexAttributeRobustness>
+--     is not enabled and there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled and either the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-legacyVertexAttributes legacyVertexAttributes>
+--     feature is not enabled or the SPIR-V Type associated with a given
+--     @Input@ variable of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ is 64-bit, 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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-04875# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @primitiveTopology@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04879# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09637# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
+--     feature is not enabled, the 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',
+--     there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-stage-06481# The bound graphics
+--     pipeline /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance6 maintenance6>
+--     feature is not enabled, a valid index buffer /must/ be bound
+--
+-- -   #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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDispatch-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDispatch-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDispatch-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of resources that is
+--     used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as
+--     described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified
+--     statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with type equal to
+--     any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDispatchIndirect-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDispatchIndirect-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDispatchIndirect-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of resources
+--     that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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
+--     specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with type
+--     equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+-- feature 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-srcImage-09460# If @srcImage@ and @dstImage@
+--     are the same, and any elements of @pRegions@ contains the
+--     @srcSubresource@ and @dstSubresource@ with matching @mipLevel@ and
+--     overlapping array layers, then the @srcImageLayout@ and
+--     @dstImageLayout@ /must/ be
+--     '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_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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     feature 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-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# If
+--     @srcSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
+--     @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# If
+--     @dstSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
+--     @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.
+--
+-- 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-srcImage-09459# If @srcImage@ and @dstImage@
+--     are the same, and an elements of @pRegions@ contains the
+--     @srcSubresource@ and @dstSubresource@ with matching @mipLevel@ and
+--     overlapping array layers, then the @srcImageLayout@ and
+--     @dstImageLayout@ /must/ be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
+--
+-- -   #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# If
+--     @srcSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
+--     @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# If
+--     @srcSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
+--     @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 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# If
+--     @imageSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
+--     @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-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@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     @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-imageOffset-10051# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     and @imageOffset.x@ does not equal the width of the subresource
+--     specified by @imageSubresource@, @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@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     @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-imageOffset-10052# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     and @imageOffset.y@ does not equal the height of the subresource
+--     specified by @imageSubresource@, @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
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     the sum of @imageOffset.x@ and @extent.width@ does not equal the
+--     width of the subresource specified by @imageSubresource@,
+--     @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-imageOffset-10053# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the difference of @imageOffset.x@ and @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 width>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-imageOffset-10054# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @imageOffset.x@ and @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-imageOffset-10055# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the sum of @imageOffset.x@ and @extent.height@ does not equal the
+--     width of the subresource specified by @imageSubresource@,
+--     @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 width>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-00208# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     and the sum of @imageOffset.y@ and @extent.height@ does not equal
+--     the height of the subresource specified by @imageSubresource@,
+--     @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-imageOffset-10056# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the sum of @imageOffset.y@ and @extent.width@ does not equal the
+--     height of the subresource specified by @imageSubresource@,
+--     @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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-imageOffset-10057# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @imageOffset.y@ and @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-imageOffset-10058# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the difference of @imageOffset.y@ and @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 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# If
+--     @imageSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
+--     @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-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@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     @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-imageOffset-10051# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     and @imageOffset.x@ does not equal the width of the subresource
+--     specified by @imageSubresource@, @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@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     @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-imageOffset-10052# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     and @imageOffset.y@ does not equal the height of the subresource
+--     specified by @imageSubresource@, @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
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     the sum of @imageOffset.x@ and @extent.width@ does not equal the
+--     width of the subresource specified by @imageSubresource@,
+--     @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-imageOffset-10053# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the difference of @imageOffset.x@ and @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 width>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-10054# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @imageOffset.x@ and @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-imageOffset-10055# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the sum of @imageOffset.x@ and @extent.height@ does not equal the
+--     width of the subresource specified by @imageSubresource@,
+--     @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 width>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-00208# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     and the sum of @imageOffset.y@ and @extent.height@ does not equal
+--     the height of the subresource specified by @imageSubresource@,
+--     @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-imageOffset-10056# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the sum of @imageOffset.y@ and @extent.width@ does not equal the
+--     height of the subresource specified by @imageSubresource@,
+--     @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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-10057# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @imageOffset.y@ and @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-imageOffset-10058# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the difference of @imageOffset.y@ and @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 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>.
+--
+-- 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 should only be used for very small amounts of data, and is why
+-- it is limited to at most 65536 bytes. Applications /can/ work around
+-- this restriction by issuing multiple 'cmdUpdateBuffer' commands to
+-- different ranges of the same buffer, but doing so is not recommended.
+--
+-- The source data is copied from @pData@ 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
+--
+-- -   #VUID-vkCmdClearColorImage-image-09678# If @image@’s format has
+--     components other than R and G, it /must/ not have a 64-bit component
+--     width
+--
+-- == 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.
+--
+-- 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-colorAttachment-09503# The
+--     @colorAttachment@ member of each element of @pAttachments@ /must/
+--     not identify a color attachment that is currently mapped to
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' in @commandBuffer@
+--     via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'
+--
+-- -   #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/
+--
+-- -   #VUID-vkCmdClearAttachments-None-09679# If the attachment format has
+--     components other than R and G, it /must/ not have a 64-bit component
+--     width
+--
+-- == 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# If
+--     @srcSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
+--     @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# If
+--     @dstSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',
+--     @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 of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     features 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 the
+--     <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 of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     features 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 the
+--     <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.
+--
+-- 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 of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     features 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 the
+--     <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 of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     features 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 the
+--     <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 a
+-- '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 of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     features 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 the
+--     <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 of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     features 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 the
+--     <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
+--     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-None-09553# If 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-shaderTileImageStencilReadAccess shaderTileImageStencilReadAccess>,
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageDepthReadAccess shaderTileImageDepthReadAccess>
+--     features are enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingLocalRead dynamicRenderingLocalRead>
+--     feature is not enabled, 'cmdPipelineBarrier' /must/ not be called
+--     within a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdPipelineBarrier-None-09554# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingLocalRead dynamicRenderingLocalRead>
+--     feature is not enabled, and 'cmdPipelineBarrier' is called within a
+--     render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there /must/ be no buffer or image memory barriers specified by this
+--     command
+--
+-- -   #VUID-vkCmdPipelineBarrier-None-09586# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingLocalRead dynamicRenderingLocalRead>
+--     feature is not enabled, and 'cmdPipelineBarrier' is called within a
+--     render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     memory barriers specified by this command /must/ only include
+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',
+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',
+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',
+--     or
+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'
+--     in their access masks
+--
+-- -   #VUID-vkCmdPipelineBarrier-image-09555# If 'cmdPipelineBarrier' is
+--     called within a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @image@ member of any image memory barrier is used as an
+--     attachment in the current render pass instance, it /must/ be in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR'
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' layout
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-09556# If
+--     'cmdPipelineBarrier' is called within a render pass instance started
+--     with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     this command /must/ only specify
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>
+--     in @srcStageMask@ and @dstStageMask@
+--
+-- -   #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>
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-09633# If either
+--     @srcStageMask@ or @dstStageMask@ includes
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT',
+--     for any element of @pImageMemoryBarriers@, @srcQueueFamilyIndex@ and
+--     @dstQueueFamilyIndex@ /must/ be equal
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-09634# If either
+--     @srcStageMask@ or @dstStageMask@ includes
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT',
+--     for any element of @pBufferMemoryBarriers@, @srcQueueFamilyIndex@
+--     and @dstQueueFamilyIndex@ /must/ be equal
+--
+-- == 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.
+--
+-- 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-None-08370# If there is a bound video session,
+--     then it /must/ not have been created with
+--     @VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR@
+--
+-- -   #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-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
+--
+-- == 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'.
+--
+-- 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-09436# @firstQuery@ /must/ be
+--     less than the number of queries in @queryPool@
+--
+-- -   #VUID-vkCmdResetQueryPool-firstQuery-09437# 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.
+--
+-- 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_KHR_calibrated_timestamps@ or
+-- @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_KHR_calibrated_timestamps.TIME_DOMAIN_DEVICE_KHR'
+-- <VkTimeDomainKHR.html time domain>. If an overflow occurs, the timestamp
+-- value /must/ wrap back to zero.
+--
+-- 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_KHR_calibrated_timestamps@ or
+-- @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 of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     features 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 of
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
+--     extension or the
+--     <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.
+--
+-- If the status value written is negative, indicating that the operations
+-- within the query completed unsuccessfully, then all other results
+-- written by this command are undefined unless otherwise specified for any
+-- of the results of the used query type.
+--
+-- 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 the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+-- feature is enabled, for an unsigned integer query, the 32-bit result
+-- value /must/ be equal to the 32 least significant bits of the equivalent
+-- 64-bit result value. 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-firstQuery-09436# @firstQuery@
+--     /must/ be less than the number of queries in @queryPool@
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-09437# The sum of
+--     @firstQuery@ and @queryCount@ /must/ be less than or equal to the
+--     number of queries in @queryPool@
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryCount-09438# If @queryCount@ is
+--     greater than 1, @stride@ /must/ not be zero
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-09439# 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-09440# 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-09441# If the @queryType@
+--     used to create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
+--     the @queryPool@ /must/ have been recorded once for each pass as
+--     retrieved via a call to
+--     'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-09442# 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-09443# 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-09402# All queries used by the
+--     command /must/ not be uninitialized when the command is executed
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-dstOffset-00819# @dstOffset@ /must/
+--     be less than the size of @dstBuffer@
+--
+-- -   #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-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-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-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.
+--
+-- 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
+--
+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-09537# 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_RENDERING_LOCAL_READ_KHR'
+--     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
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT', or
+--     both
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'
+--     and either of
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'
+--
+-- -   #VUID-vkCmdBeginRenderPass-contents-09640# If @contents@ is
+--     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR',
+--     then at least one of the following features /must/ be enabled:
+--
+--     -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--
+--     -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>
+--
+-- == 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-09680# If 'cmdExecuteCommands'
+--     is being called within a render pass instance begun with
+--     'cmdBeginRenderPass', and 'cmdNextSubpass' has not been called in
+--     the current render pass instance, the @contents@ parameter of
+--     'cmdBeginRenderPass' /must/ have been
+--     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS'
+--     , or
+--     'Vulkan.Extensions.VK_EXT_nested_command_buffer.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT'
+--
+-- -   #VUID-vkCmdExecuteCommands-None-09681# If 'cmdExecuteCommands' is
+--     being called within a render pass instance begun with
+--     'cmdBeginRenderPass', and 'cmdNextSubpass' has been called in the
+--     current render pass instance, the @contents@ parameter of the last
+--     call to 'cmdNextSubpass' /must/ have been
+--     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS'
+--     , or
+--     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR'
+--
+-- -   #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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 an @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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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'
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-09504# If
+--     'cmdExecuteCommands' is being called within a render pass instance
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the color attachment mapping state specified by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'
+--     in the inheritance info of each element of @pCommandBuffers@ and in
+--     the current state of @commandBuffer@ /must/ match
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-09505# If
+--     'cmdExecuteCommands' is being called within a render pass instance
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the input attachment mapping state specified by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--     in the inheritance info of each element of @pCommandBuffers@ and in
+--     the current state of @commandBuffer@ /must/ match
+--
+-- == 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-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-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-multiviewPerViewRenderAreas 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 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.
+--
+-- 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 the @pNext@ chain does
+--     not contain
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
+--     or its @deviceRenderAreaCount@ member is equal to 0,
+--     @renderArea.extent.width@ /must/ be greater than 0
+--
+-- -   #VUID-VkRenderPassBeginInfo-None-08997# 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.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
+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',
+--     @renderArea.offset@ /must/ equal (0,0)
+--
+-- -   #VUID-VkRenderPassBeginInfo-pNext-02870# If the @pNext@ chain
+--     includes
+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',
+--     @renderArea.extent@ transformed by
+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@
+--     /must/ equal the @framebuffer@ dimensions
+--
+-- -   #VUID-VkRenderPassBeginInfo-perViewRenderAreaCount-07859# If the
+--     @perViewRenderAreaCount@ member of a
+--     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'
+--     structure included in the @pNext@ chain is not @0@, then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiviewPerViewRenderAreas multiviewPerViewRenderAreas>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkRenderPassBeginInfo-perViewRenderAreaCount-07860# If the
+--     @perViewRenderAreaCount@ member of a
+--     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'
+--     structure included in the @pNext@ chain is not @0@, then
+--     @renderArea@ /must/ specify a render area that includes the union of
+--     all per view render areas
+--
+-- -   #VUID-VkRenderPassBeginInfo-pNext-09539# If the @pNext@ chain
+--     contains a
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM'
+--     structure, the union of stripe areas defined by the elements of
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeInfoARM'::@pStripeInfos@
+--     /must/ cover the @renderArea@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkRenderPassBeginInfo-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO'
+--
+-- -   #VUID-VkRenderPassBeginInfo-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.DeviceGroupRenderPassBeginInfo',
+--     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM',
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',
+--     'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM',
+--     or
+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'
+--
+-- -   #VUID-VkRenderPassBeginInfo-sType-unique# The @sType@ value of each
+--     struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkRenderPassBeginInfo-renderPass-parameter# @renderPass@
+--     /must/ be a valid 'Vulkan.Core10.Handles.RenderPass' handle
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-parameter# @framebuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Framebuffer' handle
+--
+-- -   #VUID-VkRenderPassBeginInfo-commonparent# Both of @framebuffer@, and
+--     @renderPass@ /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>,
+-- 'ClearValue', 'Vulkan.Core10.Handles.Framebuffer',
+-- 'Vulkan.Core10.FundamentalTypes.Rect2D',
+-- 'Vulkan.Core10.Handles.RenderPass',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBeginRenderPass',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdBeginRenderPass2',
+-- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdBeginRenderPass2KHR'
+data RenderPassBeginInfo (es :: [Type]) = RenderPassBeginInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @renderPass@ is the render pass to begin an instance of.
+    renderPass :: RenderPass
+  , -- | @framebuffer@ is the framebuffer containing the attachments that are
+    -- used with the render pass.
+    framebuffer :: Framebuffer
+  , -- | @renderArea@ is the render area that is affected by the render pass
+    -- instance, and is described in more detail below.
+    renderArea :: Rect2D
+  , -- | @pClearValues@ is a pointer to an array of @clearValueCount@
+    -- 'ClearValue' structures containing clear values for each attachment, if
+    -- the attachment uses a @loadOp@ value of
+    -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' or if
+    -- the attachment has a depth\/stencil format and uses a @stencilLoadOp@
+    -- value of
+    -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'. The
+    -- array is indexed by attachment number. Only elements corresponding to
+    -- cleared attachments are used. Other elements of @pClearValues@ are
+    -- ignored.
+    clearValues :: Vector ClearValue
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (RenderPassBeginInfo (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (RenderPassBeginInfo es)
+
+instance Extensible RenderPassBeginInfo where
+  extensibleTypeName = "RenderPassBeginInfo"
+  setNext RenderPassBeginInfo{..} next' = RenderPassBeginInfo{next = next', ..}
+  getNext RenderPassBeginInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderPassBeginInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @RenderPassStripeBeginInfoARM = Just f
+    | Just Refl <- eqT @e @MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = Just f
+    | Just Refl <- eqT @e @RenderPassTransformBeginInfoQCOM = Just f
+    | Just Refl <- eqT @e @RenderPassAttachmentBeginInfo = Just f
+    | Just Refl <- eqT @e @RenderPassSampleLocationsBeginInfoEXT = Just f
+    | Just Refl <- eqT @e @DeviceGroupRenderPassBeginInfo = Just f
+    | otherwise = Nothing
+
+instance ( Extendss RenderPassBeginInfo es
+         , PokeChain es ) => ToCStruct (RenderPassBeginInfo es) where
+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p RenderPassBeginInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr RenderPass)) (renderPass)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Framebuffer)) (framebuffer)
+    lift $ poke ((p `plusPtr` 32 :: Ptr Rect2D)) (renderArea)
+    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (clearValues)) :: Word32))
+    pPClearValues' <- ContT $ allocaBytes @ClearValue ((Data.Vector.length (clearValues)) * 16)
+    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPClearValues' `plusPtr` (16 * (i)) :: Ptr ClearValue) (e) . ($ ())) (clearValues)
+    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr ClearValue))) (pPClearValues')
+    lift $ f
+  cStructSize = 64
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 16 :: Ptr RenderPass)) (zero)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Framebuffer)) (zero)
+    lift $ poke ((p `plusPtr` 32 :: Ptr Rect2D)) (zero)
+    lift $ f
+
+instance es ~ '[] => Zero (RenderPassBeginInfo es) where
+  zero = RenderPassBeginInfo
+           ()
+           zero
+           zero
+           zero
+           mempty
+
+
+-- | VkClearDepthStencilValue - Structure specifying a clear depth stencil
+-- value
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkClearDepthStencilValue-depth-00022# Unless the
+--     @VK_EXT_depth_range_unrestricted@ extension is enabled @depth@
+--     /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>,
+-- 'ClearValue', 'cmdClearDepthStencilImage'
+data ClearDepthStencilValue = ClearDepthStencilValue
+  { -- | @depth@ is the clear value for the depth aspect of the depth\/stencil
+    -- attachment. It is a floating-point value which is automatically
+    -- converted to the attachment’s format.
+    depth :: Float
+  , -- | @stencil@ is the clear value for the stencil aspect of the
+    -- depth\/stencil attachment. It is a 32-bit integer value which is
+    -- converted to the attachment’s format by taking the appropriate number of
+    -- LSBs.
+    stencil :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ClearDepthStencilValue)
+#endif
+deriving instance Show ClearDepthStencilValue
+
+instance ToCStruct ClearDepthStencilValue where
+  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ClearDepthStencilValue{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (depth))
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (stencil)
+    f
+  cStructSize = 8
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (zero))
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct ClearDepthStencilValue where
+  peekCStruct p = do
+    depth <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))
+    stencil <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
+    pure $ ClearDepthStencilValue
+             (coerce @CFloat @Float depth) stencil
+
+instance Storable ClearDepthStencilValue where
+  sizeOf ~_ = 8
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ClearDepthStencilValue where
+  zero = ClearDepthStencilValue
+           zero
+           zero
+
+
+-- | VkClearAttachment - Structure specifying a clear attachment
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkClearAttachment-aspectMask-00019# If @aspectMask@ includes
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it
+--     /must/ not include
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--
+-- -   #VUID-VkClearAttachment-aspectMask-00020# @aspectMask@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'
+--
+-- -   #VUID-VkClearAttachment-aspectMask-02246# @aspectMask@ /must/ not
+--     include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index /i/
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkClearAttachment-aspectMask-parameter# @aspectMask@ /must/ be
+--     a valid combination of
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values
+--
+-- -   #VUID-VkClearAttachment-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>,
+-- 'ClearValue',
+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags',
+-- 'cmdClearAttachments'
+data ClearAttachment = ClearAttachment
+  { -- | @aspectMask@ is a mask selecting the color, depth and\/or stencil
+    -- aspects of the attachment to be cleared.
+    aspectMask :: ImageAspectFlags
+  , -- | @colorAttachment@ is only meaningful if
+    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' is set
+    -- in @aspectMask@, in which case it is an index into the bound color
+    -- attachments.
     colorAttachment :: Word32
   , -- | @clearValue@ is the color or depth\/stencil value to clear the
     -- attachment to, as described in
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
@@ -151,6 +151,18 @@
 
 -- | vkCreateDescriptorSetLayout - Create a new descriptor set layout
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCreateDescriptorSetLayout-support-09582# If the descriptor
+--     layout exceeds the limits reported through the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits physical device limits>,
+--     then
+--     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.getDescriptorSetLayoutSupport'
+--     /must/ have returned
+--     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.DescriptorSetLayoutSupport'
+--     with @support@ equal to 'Vulkan.Core10.FundamentalTypes.TRUE' for
+--     @pCreateInfo@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCreateDescriptorSetLayout-device-parameter# @device@ /must/
@@ -543,6 +555,9 @@
 --
 --     -   'Vulkan.Core10.Enums.Result.SUCCESS'
 --
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--     None
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
@@ -787,6 +802,9 @@
 --
 --     -   'Vulkan.Core10.Enums.Result.SUCCESS'
 --
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--     None
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
@@ -1068,8 +1086,6 @@
     -- '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
@@ -1332,6 +1348,8 @@
 -- If the destination descriptor is a mutable descriptor, the active
 -- descriptor type for the destination descriptor becomes @descriptorType@.
 --
+-- __Consecutive Binding Updates__
+--
 -- If the @dstBinding@ has fewer than @descriptorCount@ array elements
 -- remaining starting from @dstArrayElement@, then the remainder will be
 -- used to update the subsequent binding - @dstBinding@+1 starting at array
@@ -1349,8 +1367,6 @@
 -- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.MutableDescriptorTypeCreateInfoEXT'
 -- /must/ be equally defined.
 --
--- Note
---
 -- The same behavior applies to bindings with a descriptor type of
 -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'
 -- where @descriptorCount@ specifies the number of bytes to update while
@@ -1370,6 +1386,10 @@
 -- -   #VUID-VkWriteDescriptorSet-dstBinding-00316# @dstBinding@ /must/ be
 --     a binding with a non-zero @descriptorCount@
 --
+-- -   #VUID-VkWriteDescriptorSet-dstBinding-10009# @dstBinding@ /must/ be
+--     a binding with a non-zero
+--     'DescriptorSetLayoutCreateInfo'::@bindingCount@
+--
 -- -   #VUID-VkWriteDescriptorSet-descriptorCount-00317# All consecutive
 --     bindings updated via a single 'WriteDescriptorSet' structure, except
 --     those with a @descriptorCount@ of zero, /must/ have identical
@@ -1389,9 +1409,8 @@
 -- -   #VUID-VkWriteDescriptorSet-dstArrayElement-00321# The sum of
 --     @dstArrayElement@ and @descriptorCount@ /must/ be less than or equal
 --     to the number of array elements in the descriptor set binding
---     specified by @dstBinding@, and all applicable consecutive bindings,
---     as described by
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive>
+--     specified by @dstBinding@, and all applicable
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive consecutive bindings>
 --
 -- -   #VUID-VkWriteDescriptorSet-descriptorType-02219# If @descriptorType@
 --     is
@@ -1501,8 +1520,8 @@
 -- -   #VUID-VkWriteDescriptorSet-descriptorType-02738# If @descriptorType@
 --     is
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
---     and if any element of @pImageInfo@ has a @imageView@ member that was
---     created with a
+--     and if any element of @pImageInfo@ has an @imageView@ member that
+--     was created with a
 --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo'
 --     structure in its @pNext@ chain, then @dstSet@ /must/ have been
 --     allocated with a layout that included immutable samplers for
@@ -1789,6 +1808,8 @@
     --
     -- -   a value matching the @accelerationStructureCount@ of a
     --     'Vulkan.Extensions.VK_KHR_acceleration_structure.WriteDescriptorSetAccelerationStructureKHR'
+    --     or
+    --     'Vulkan.Extensions.VK_NV_ray_tracing.WriteDescriptorSetAccelerationStructureNV'
     --     structure in the @pNext@ chain
     descriptorCount :: Word32
   , -- | @descriptorType@ is a
@@ -1945,8 +1966,6 @@
 -- corresponding destination descriptor. The active descriptor type /can/
 -- be different for each source descriptor.
 --
--- Note
---
 -- The intention is that copies to and from mutable descriptors is a simple
 -- memcpy. Copies between non-mutable and mutable descriptors are expected
 -- to require one memcpy per descriptor to handle the difference in size,
@@ -1961,9 +1980,8 @@
 -- -   #VUID-VkCopyDescriptorSet-srcArrayElement-00346# The sum of
 --     @srcArrayElement@ and @descriptorCount@ /must/ be less than or equal
 --     to the number of array elements in the descriptor set binding
---     specified by @srcBinding@, and all applicable consecutive bindings,
---     as described by
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive>
+--     specified by @srcBinding@, and all applicable
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive consecutive bindings>
 --
 -- -   #VUID-VkCopyDescriptorSet-dstBinding-00347# @dstBinding@ /must/ be a
 --     valid binding within @dstSet@
@@ -1971,9 +1989,8 @@
 -- -   #VUID-VkCopyDescriptorSet-dstArrayElement-00348# The sum of
 --     @dstArrayElement@ and @descriptorCount@ /must/ be less than or equal
 --     to the number of array elements in the descriptor set binding
---     specified by @dstBinding@, and all applicable consecutive bindings,
---     as described by
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive>
+--     specified by @dstBinding@, and all applicable
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive consecutive bindings>
 --
 -- -   #VUID-VkCopyDescriptorSet-dstBinding-02632# The type of @dstBinding@
 --     within @dstSet@ /must/ be equal to the type of @srcBinding@ within
@@ -1982,8 +1999,8 @@
 -- -   #VUID-VkCopyDescriptorSet-srcSet-00349# If @srcSet@ is equal to
 --     @dstSet@, then the source and destination ranges of descriptors
 --     /must/ not overlap, where the ranges /may/ include array elements
---     from consecutive bindings as described by
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive>
+--     from
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive consecutive bindings>
 --
 -- -   #VUID-VkCopyDescriptorSet-srcBinding-02223# If the descriptor type
 --     of the descriptor set binding specified by @srcBinding@ is
@@ -2209,8 +2226,6 @@
 -- are used, though it /should/ not consume additional memory from the
 -- descriptor pool.
 --
--- Note
---
 -- The maximum binding number specified /should/ be as compact as possible
 -- to avoid wasted memory.
 --
@@ -2493,10 +2508,10 @@
 -- -   #VUID-VkDescriptorSetLayoutCreateInfo-pBindings-07303# If any
 --     element @pBindings@[i] has a @descriptorType@ of
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_EXT',
---     then a
+--     then the @pNext@ chain /must/ include a
 --     'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.MutableDescriptorTypeCreateInfoEXT'
---     /must/ be present in the @pNext@ chain, and
---     @mutableDescriptorTypeListCount@ /must/ be greater than i
+--     structure, and @mutableDescriptorTypeListCount@ /must/ be greater
+--     than i
 --
 -- -   #VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04594# If a
 --     binding has a @descriptorType@ value of
@@ -2662,8 +2677,6 @@
 --
 -- = Description
 --
--- Note
---
 -- When creating a descriptor pool that will contain descriptors for
 -- combined image samplers of multi-planar formats, an application needs to
 -- account for non-trivial descriptor consumption when choosing the
@@ -2819,8 +2832,6 @@
 -- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.MutableDescriptorTypeListEXT'
 -- assigned to it. The application /must/ ensure that partial overlap does
 -- not exist in @pPoolSizes@.
---
--- Note
 --
 -- The requirement of no partial overlap is intended to resolve ambiguity
 -- for validation as there is no confusion which @pPoolSizes@ entries will
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
@@ -75,6 +75,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (DeviceDiagnosticsConfigCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation (DeviceGroupDeviceCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_memory_overallocation_behavior (DeviceMemoryOverallocationCreateInfoAMD)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (DevicePipelineBinaryInternalCacheControlKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (DevicePrivateDataCreateInfo)
 import Vulkan.Core10.Enums.DeviceQueueCreateFlagBits (DeviceQueueCreateFlags)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (DeviceQueueGlobalPriorityCreateInfoKHR)
@@ -96,6 +97,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_AMD_anti_lag (PhysicalDeviceAntiLagFeaturesAMD)
 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)
@@ -105,8 +107,10 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalDeviceCoherentMemoryFeaturesAMD)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_command_buffer_inheritance (PhysicalDeviceCommandBufferInheritanceFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix2 (PhysicalDeviceCooperativeMatrix2FeaturesNV)
 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)
@@ -118,6 +122,7 @@
 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_control (PhysicalDeviceDepthClampControlFeaturesEXT)
 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)
@@ -126,6 +131,7 @@
 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_EXT_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT)
 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)
@@ -154,9 +160,11 @@
 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_HUAWEI_hdr_vivid (PhysicalDeviceHdrVividFeaturesHUAWEI)
 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_MESA_image_alignment_control (PhysicalDeviceImageAlignmentControlFeaturesMESA)
 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)
@@ -170,11 +178,14 @@
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_dithering (PhysicalDeviceLegacyDitheringFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_vertex_attributes (PhysicalDeviceLegacyVertexAttributesFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_line_rasterization (PhysicalDeviceLineRasterizationFeaturesKHR)
 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_KHR_maintenance6 (PhysicalDeviceMaintenance6FeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance7 (PhysicalDeviceMaintenance7FeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_map_memory_placed (PhysicalDeviceMapMemoryPlacedFeaturesEXT)
 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)
@@ -192,6 +203,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pageable_device_local_memory (PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_per_stage_descriptor_set (PhysicalDevicePerStageDescriptorSetFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PhysicalDevicePipelineBinaryFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_library_group_handles (PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT)
@@ -201,6 +213,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (PhysicalDevicePresentBarrierFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_present_mode_fifo_latest_ready (PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitive_topology_list_restart (PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitives_generated_query (PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT)
@@ -209,12 +222,14 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rgba10x6_formats (PhysicalDeviceRGBA10X6FormatsFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_raw_access_chains (PhysicalDeviceRawAccessChainsFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder (PhysicalDeviceRayTracingInvocationReorderFeaturesNV)
 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_ray_tracing_validation (PhysicalDeviceRayTracingValidationFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_IMG_relaxed_line_rasterization (PhysicalDeviceRelaxedLineRasterizationFeaturesIMG)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedFeaturesARM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV)
@@ -223,6 +238,7 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_scheduling_controls (PhysicalDeviceSchedulingControlsFeaturesARM)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_atomic_float16_vector (PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features)
@@ -243,6 +259,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PhysicalDeviceShaderModuleIdentifierFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_object (PhysicalDeviceShaderObjectFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_quad_control (PhysicalDeviceShaderQuadControlFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_relaxed_extended_instruction (PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_replicated_composites (PhysicalDeviceShaderReplicatedCompositesFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_subgroup_rotate (PhysicalDeviceShaderSubgroupRotateFeaturesKHR)
@@ -263,6 +281,7 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_robustness (PhysicalDeviceVertexAttributeRobustnessFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features)
 import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features)
@@ -439,8 +458,6 @@
 -- created using that device as the first parameter of the corresponding
 -- @vkCreate*@ or @vkAllocate*@ command.
 --
--- Note
---
 -- The lifetime of each of these objects is bound by the lifetime of the
 -- 'Vulkan.Core10.Handles.Device' object. Therefore, to avoid resource
 -- leaks, it is critical that an application explicitly free all of these
@@ -542,7 +559,7 @@
 --     structure then
 --     'Vulkan.Extensions.VK_ARM_scheduling_controls.PhysicalDeviceSchedulingControlsPropertiesARM'::@schedulingControlsFlags@
 --     /must/ contain
---     'Vulkan.Extensions.VK_ARM_scheduling_controls.PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM'.
+--     'Vulkan.Extensions.VK_ARM_scheduling_controls.PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM'
 --
 -- == Valid Usage (Implicit)
 --
@@ -589,7 +606,7 @@
     -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceQueueFamilyProperties'.
     queueFamilyIndex :: Word32
   , -- | @pQueuePriorities@ is a pointer to an array of @queueCount@ normalized
-    -- floating point values, specifying priorities of work that will be
+    -- floating-point values, specifying priorities of work that will be
     -- submitted to each created queue. See
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-priority Queue Priority>
     -- for more information.
@@ -848,41 +865,53 @@
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
 --     feature /must/ not be enabled
 --
--- -   #VUID-VkDeviceCreateInfo-None-04896# If
+-- -   #VUID-VkDeviceCreateInfo-None-04896# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>
---     is enabled,
+--     feature is enabled,
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageInt64Atomics shaderImageInt64Atomics>
 --     /must/ be enabled
 --
--- -   #VUID-VkDeviceCreateInfo-None-04897# If
+-- -   #VUID-VkDeviceCreateInfo-None-04897# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32Atomics sparseImageFloat32Atomics>
---     is enabled,
+--     feature is enabled,
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32Atomics shaderImageFloat32Atomics>
 --     /must/ be enabled
 --
--- -   #VUID-VkDeviceCreateInfo-None-04898# If
+-- -   #VUID-VkDeviceCreateInfo-None-04898# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32AtomicAdd sparseImageFloat32AtomicAdd>
---     is enabled,
+--     feature is enabled,
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32AtomicAdd shaderImageFloat32AtomicAdd>
 --     /must/ be enabled
 --
 -- -   #VUID-VkDeviceCreateInfo-sparseImageFloat32AtomicMinMax-04975# If
+--     the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32AtomicMinMax sparseImageFloat32AtomicMinMax>
---     is enabled,
+--     feature is enabled,
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32AtomicMinMax shaderImageFloat32AtomicMinMax>
 --     /must/ be enabled
 --
--- -   #VUID-VkDeviceCreateInfo-None-08095# If
+-- -   #VUID-VkDeviceCreateInfo-robustBufferAccess-10247# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is enabled, and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustBufferAccessUpdateAfterBind robustBufferAccessUpdateAfterBind>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBindingUniformBufferUpdateAfterBind descriptorBindingUniformBufferUpdateAfterBind>,
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBindingStorageBufferUpdateAfterBind descriptorBindingStorageBufferUpdateAfterBind>,
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBindingUniformTexelBufferUpdateAfterBind descriptorBindingUniformTexelBufferUpdateAfterBind>,
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBindingStorageTexelBufferUpdateAfterBind descriptorBindingStorageTexelBufferUpdateAfterBind>
+--     /must/ not be enabled
+--
+-- -   #VUID-VkDeviceCreateInfo-None-08095# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBuffer>
---     is enabled, @ppEnabledExtensionNames@ /must/ not contain
+--     feature is enabled, @ppEnabledExtensionNames@ /must/ not contain
 --     @VK_AMD_shader_fragment_mask@
 --
 -- -   #VUID-VkDeviceCreateInfo-pNext-09396# If the @pNext@ chain includes
 --     a
 --     'Vulkan.Extensions.VK_ARM_scheduling_controls.DeviceQueueShaderCoreControlCreateInfoARM'
 --     structure, then it /must/ not be included in the @pNext@ chain of
---     any of the 'DeviceQueueCreateInfo' structures in
---     @pQueueCreateInfos@.
+--     any of the 'DeviceQueueCreateInfo' structures in @pQueueCreateInfos@
 --
 -- -   #VUID-VkDeviceCreateInfo-pNext-09397# If the @pNext@ chain includes
 --     a
@@ -890,7 +919,7 @@
 --     structure then
 --     'Vulkan.Extensions.VK_ARM_scheduling_controls.PhysicalDeviceSchedulingControlsPropertiesARM'::@schedulingControlsFlags@
 --     /must/ contain
---     'Vulkan.Extensions.VK_ARM_scheduling_controls.PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM'.
+--     'Vulkan.Extensions.VK_ARM_scheduling_controls.PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM'
 --
 -- == Valid Usage (Implicit)
 --
@@ -904,6 +933,7 @@
 --     'Vulkan.Extensions.VK_NV_device_diagnostics_config.DeviceDiagnosticsConfigCreateInfoNV',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.DeviceGroupDeviceCreateInfo',
 --     'Vulkan.Extensions.VK_AMD_memory_overallocation_behavior.DeviceMemoryOverallocationCreateInfoAMD',
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.DevicePipelineBinaryInternalCacheControlKHR',
 --     'Vulkan.Core13.Promoted_From_VK_EXT_private_data.DevicePrivateDataCreateInfo',
 --     'Vulkan.Extensions.VK_ARM_scheduling_controls.DeviceQueueShaderCoreControlCreateInfoARM',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage.PhysicalDevice16BitStorageFeatures',
@@ -913,6 +943,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_AMD_anti_lag.PhysicalDeviceAntiLagFeaturesAMD',
 --     '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',
@@ -922,8 +953,10 @@
 --     'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderFeaturesHUAWEI',
 --     'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',
 --     'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT',
---     'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',
+--     'Vulkan.Extensions.VK_NV_command_buffer_inheritance.PhysicalDeviceCommandBufferInheritanceFeaturesNV',
+--     'Vulkan.Extensions.VK_KHR_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesKHR',
 --     'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT',
+--     'Vulkan.Extensions.VK_NV_cooperative_matrix2.PhysicalDeviceCooperativeMatrix2FeaturesNV',
 --     'Vulkan.Extensions.VK_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesKHR',
 --     'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesNV',
 --     'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectFeaturesNV',
@@ -935,6 +968,7 @@
 --     '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_control.PhysicalDeviceDepthClampControlFeaturesEXT',
 --     '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',
@@ -943,6 +977,7 @@
 --     '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_EXT_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV',
 --     'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV',
@@ -970,9 +1005,11 @@
 --     '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_HUAWEI_hdr_vivid.PhysicalDeviceHdrVividFeaturesHUAWEI',
 --     '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_MESA_image_alignment_control.PhysicalDeviceImageAlignmentControlFeaturesMESA',
 --     'Vulkan.Extensions.VK_EXT_image_compression_control.PhysicalDeviceImageCompressionControlFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_image_compression_control_swapchain.PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT',
 --     'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2FeaturesQCOM',
@@ -986,11 +1023,14 @@
 --     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures',
 --     'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI',
 --     'Vulkan.Extensions.VK_EXT_legacy_dithering.PhysicalDeviceLegacyDitheringFeaturesEXT',
+--     'Vulkan.Extensions.VK_EXT_legacy_vertex_attributes.PhysicalDeviceLegacyVertexAttributesFeaturesEXT',
 --     'Vulkan.Extensions.VK_KHR_line_rasterization.PhysicalDeviceLineRasterizationFeaturesKHR',
 --     '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_maintenance6.PhysicalDeviceMaintenance6FeaturesKHR',
+--     'Vulkan.Extensions.VK_KHR_maintenance7.PhysicalDeviceMaintenance7FeaturesKHR',
+--     'Vulkan.Extensions.VK_EXT_map_memory_placed.PhysicalDeviceMapMemoryPlacedFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionFeaturesNV',
 --     'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderFeaturesEXT',
@@ -1008,6 +1048,7 @@
 --     'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_per_stage_descriptor_set.PhysicalDevicePerStageDescriptorSetFeaturesNV',
 --     'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR',
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PhysicalDevicePipelineBinaryFeaturesKHR',
 --     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures',
 --     'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',
 --     'Vulkan.Extensions.VK_EXT_pipeline_library_group_handles.PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT',
@@ -1017,6 +1058,7 @@
 --     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',
 --     'Vulkan.Extensions.VK_NV_present_barrier.PhysicalDevicePresentBarrierFeaturesNV',
 --     'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR',
+--     'Vulkan.Extensions.VK_EXT_present_mode_fifo_latest_ready.PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT',
 --     'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR',
 --     'Vulkan.Extensions.VK_EXT_primitive_topology_list_restart.PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_primitives_generated_query.PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT',
@@ -1025,12 +1067,14 @@
 --     'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_rgba10x6_formats.PhysicalDeviceRGBA10X6FormatsFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access.PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT',
+--     'Vulkan.Extensions.VK_NV_raw_access_chains.PhysicalDeviceRawAccessChainsFeaturesNV',
 --     'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR',
 --     'Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder.PhysicalDeviceRayTracingInvocationReorderFeaturesNV',
 --     '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_ray_tracing_validation.PhysicalDeviceRayTracingValidationFeaturesNV',
 --     'Vulkan.Extensions.VK_IMG_relaxed_line_rasterization.PhysicalDeviceRelaxedLineRasterizationFeaturesIMG',
 --     'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedFeaturesARM',
 --     'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',
@@ -1039,6 +1083,7 @@
 --     'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures',
 --     'Vulkan.Extensions.VK_ARM_scheduling_controls.PhysicalDeviceSchedulingControlsFeaturesARM',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',
+--     'Vulkan.Extensions.VK_NV_shader_atomic_float16_vector.PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV',
 --     'Vulkan.Extensions.VK_EXT_shader_atomic_float2.PhysicalDeviceShaderAtomicFloat2FeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features',
@@ -1059,6 +1104,8 @@
 --     'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_shader_object.PhysicalDeviceShaderObjectFeaturesEXT',
 --     'Vulkan.Extensions.VK_KHR_shader_quad_control.PhysicalDeviceShaderQuadControlFeaturesKHR',
+--     'Vulkan.Extensions.VK_KHR_shader_relaxed_extended_instruction.PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR',
+--     'Vulkan.Extensions.VK_EXT_shader_replicated_composites.PhysicalDeviceShaderReplicatedCompositesFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures',
 --     'Vulkan.Extensions.VK_KHR_shader_subgroup_rotate.PhysicalDeviceShaderSubgroupRotateFeaturesKHR',
@@ -1079,7 +1126,10 @@
 --     'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures',
 --     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesKHR',
+--     'Vulkan.Extensions.VK_EXT_vertex_attribute_robustness.PhysicalDeviceVertexAttributeRobustnessFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT',
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoEncodeAV1FeaturesKHR VkPhysicalDeviceVideoEncodeAV1FeaturesKHR>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR>,
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoMaintenance1FeaturesKHR VkPhysicalDeviceVideoMaintenance1FeaturesKHR>,
 --     'Vulkan.Core12.PhysicalDeviceVulkan11Features',
 --     'Vulkan.Core12.PhysicalDeviceVulkan12Features',
@@ -1171,6 +1221,16 @@
   getNext DeviceCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeRobustnessFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceHdrVividFeaturesHUAWEI = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrix2FeaturesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceShaderReplicatedCompositesFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceImageAlignmentControlFeaturesMESA = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceCommandBufferInheritanceFeaturesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceRawAccessChainsFeaturesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceMapMemoryPlacedFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderQuadControlFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderFloatControls2FeaturesKHR = Just f
@@ -1189,6 +1249,7 @@
     | 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 @PhysicalDeviceAntiLagFeaturesAMD = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderEnqueueFeaturesAMDX = Just f
     | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = Just f
@@ -1225,12 +1286,15 @@
     | 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 @DevicePipelineBinaryInternalCacheControlKHR = Just f
+    | Just Refl <- eqT @e @PhysicalDevicePipelineBinaryFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImageViewMinLodFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRGBA10X6FormatsFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceRayTracingValidationFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRayTracingMotionBlurFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductFeatures = Just f
@@ -1245,10 +1309,14 @@
     | 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 @PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryRDMAFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceDepthClampControlFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDepthClipControlFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceLegacyVertexAttributesFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImageSlicedViewOf3DFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImage2DViewOf3DFeaturesEXT = Just f
@@ -1319,7 +1387,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceCopyMemoryIndirectFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderImageFootprintFeaturesNV = Just f
-    | Just Refl <- eqT @e @PhysicalDeviceComputeShaderDerivativesFeaturesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceComputeShaderDerivativesFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceCornerSampledImageFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceExclusiveScissorFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRepresentativeFragmentTestFeaturesNV = Just f
@@ -1340,6 +1408,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 @PhysicalDeviceMaintenance7FeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMaintenance6FeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMaintenance5FeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Features = Just f
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
@@ -438,4201 +438,4384 @@
 --
 -- If @pPhysicalDevices@ is @NULL@, then the number of physical devices
 -- available is returned in @pPhysicalDeviceCount@. Otherwise,
--- @pPhysicalDeviceCount@ /must/ point to a variable set by the user to the
--- number of elements in the @pPhysicalDevices@ array, and on return the
--- variable is overwritten with the number of handles actually written to
--- @pPhysicalDevices@. If @pPhysicalDeviceCount@ is less than the number of
--- physical devices available, at most @pPhysicalDeviceCount@ 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 physical devices were returned.
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkEnumeratePhysicalDevices-instance-parameter# @instance@
---     /must/ be a valid 'Vulkan.Core10.Handles.Instance' handle
---
--- -   #VUID-vkEnumeratePhysicalDevices-pPhysicalDeviceCount-parameter#
---     @pPhysicalDeviceCount@ /must/ be a valid pointer to a @uint32_t@
---     value
---
--- -   #VUID-vkEnumeratePhysicalDevices-pPhysicalDevices-parameter# If the
---     value referenced by @pPhysicalDeviceCount@ is not @0@, and
---     @pPhysicalDevices@ is not @NULL@, @pPhysicalDevices@ /must/ be a
---     valid pointer to an array of @pPhysicalDeviceCount@
---     'Vulkan.Core10.Handles.PhysicalDevice' handles
---
--- == 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'
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'
---
--- = 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.Instance', 'Vulkan.Core10.Handles.PhysicalDevice'
-enumeratePhysicalDevices :: forall io
-                          . (MonadIO io)
-                         => -- | @instance@ is a handle to a Vulkan instance previously created with
-                            -- 'createInstance'.
-                            Instance
-                         -> io (Result, ("physicalDevices" ::: Vector PhysicalDevice))
-enumeratePhysicalDevices instance' = liftIO . evalContT $ do
-  let cmds = case instance' of Instance{instanceCmds} -> instanceCmds
-  let vkEnumeratePhysicalDevicesPtr = pVkEnumeratePhysicalDevices cmds
-  lift $ unless (vkEnumeratePhysicalDevicesPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkEnumeratePhysicalDevices is null" Nothing Nothing
-  let vkEnumeratePhysicalDevices' = mkVkEnumeratePhysicalDevices vkEnumeratePhysicalDevicesPtr
-  let instance'' = instanceHandle (instance')
-  pPPhysicalDeviceCount <- ContT $ bracket (callocBytes @Word32 4) free
-  r <- lift $ traceAroundEvent "vkEnumeratePhysicalDevices" (vkEnumeratePhysicalDevices'
-                                                               instance''
-                                                               (pPPhysicalDeviceCount)
-                                                               (nullPtr))
-  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
-  pPhysicalDeviceCount <- lift $ peek @Word32 pPPhysicalDeviceCount
-  pPPhysicalDevices <- ContT $ bracket (callocBytes @(Ptr PhysicalDevice_T) ((fromIntegral (pPhysicalDeviceCount)) * 8)) free
-  r' <- lift $ traceAroundEvent "vkEnumeratePhysicalDevices" (vkEnumeratePhysicalDevices'
-                                                                instance''
-                                                                (pPPhysicalDeviceCount)
-                                                                (pPPhysicalDevices))
-  lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
-  pPhysicalDeviceCount' <- lift $ peek @Word32 pPPhysicalDeviceCount
-  pPhysicalDevices' <- lift $ generateM (fromIntegral (pPhysicalDeviceCount')) (\i -> do
-    pPhysicalDevicesElem <- peek @(Ptr PhysicalDevice_T) ((pPPhysicalDevices `advancePtrBytes` (8 * (i)) :: Ptr (Ptr PhysicalDevice_T)))
-    pure $ (\h -> PhysicalDevice h cmds ) pPhysicalDevicesElem)
-  pure $ ((r'), pPhysicalDevices')
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkGetDeviceProcAddr
-  :: FunPtr (Ptr Device_T -> Ptr CChar -> IO PFN_vkVoidFunction) -> Ptr Device_T -> Ptr CChar -> IO PFN_vkVoidFunction
-
--- | vkGetDeviceProcAddr - Return a function pointer for a command
---
--- = Parameters
---
--- The table below defines the various use cases for 'getDeviceProcAddr'
--- and expected return value (“fp” is “function pointer”) for each case. A
--- valid returned function pointer (“fp”) /must/ not be @NULL@.
---
--- = Description
---
--- The returned function pointer is of type
--- 'Vulkan.Core10.FuncPointers.PFN_vkVoidFunction', and /must/ be cast to
--- the type of the command being queried before use. The function pointer
--- /must/ only be called with a dispatchable object (the first parameter)
--- that is @device@ or a child of @device@.
---
--- +------------------+------------------+------------------+
--- | @device@         | @pName@          | return value     |
--- +==================+==================+==================+
--- | @NULL@           | *1               | undefined        |
--- +------------------+------------------+------------------+
--- | invalid device   | *1               | undefined        |
--- +------------------+------------------+------------------+
--- | device           | @NULL@           | undefined        |
--- +------------------+------------------+------------------+
--- | device           | requested core   | fp4              |
--- |                  | version2         |                  |
--- |                  | device-level     |                  |
--- |                  | dispatchable     |                  |
--- |                  | command3         |                  |
--- +------------------+------------------+------------------+
--- | device           | enabled          | fp4              |
--- |                  | extension        |                  |
--- |                  | device-level     |                  |
--- |                  | dispatchable     |                  |
--- |                  | command3         |                  |
--- +------------------+------------------+------------------+
--- | any other case,  |                  | @NULL@           |
--- | not covered      |                  |                  |
--- | above            |                  |                  |
--- +------------------+------------------+------------------+
---
--- 'getDeviceProcAddr' behavior
---
--- [1]
---     \"*\" means any representable value for the parameter (including
---     valid values, invalid values, and @NULL@).
---
--- [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. 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
---     commands.
---
--- [4]
---     The returned function pointer /must/ only be called with a
---     dispatchable object (the first parameter) that is @device@ or a
---     child of @device@ e.g. 'Vulkan.Core10.Handles.Device',
---     'Vulkan.Core10.Handles.Queue', or
---     'Vulkan.Core10.Handles.CommandBuffer'.
---
--- == Valid Usage (Implicit)
---
--- = See Also
---
--- 'Vulkan.Core10.FuncPointers.PFN_vkVoidFunction',
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Device'
-getDeviceProcAddr :: forall io
-                   . (MonadIO io)
-                  => -- | #VUID-vkGetDeviceProcAddr-device-parameter# @device@ /must/ be a valid
-                     -- 'Vulkan.Core10.Handles.Device' handle
-                     Device
-                  -> -- | #VUID-vkGetDeviceProcAddr-pName-parameter# @pName@ /must/ be a
-                     -- null-terminated UTF-8 string
-                     ("name" ::: ByteString)
-                  -> io (PFN_vkVoidFunction)
-getDeviceProcAddr device name = liftIO . evalContT $ do
-  let vkGetDeviceProcAddrPtr = pVkGetDeviceProcAddr (case device of Device{deviceCmds} -> deviceCmds)
-  lift $ unless (vkGetDeviceProcAddrPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceProcAddr is null" Nothing Nothing
-  let vkGetDeviceProcAddr' = mkVkGetDeviceProcAddr vkGetDeviceProcAddrPtr
-  pName <- ContT $ useAsCString (name)
-  r <- lift $ traceAroundEvent "vkGetDeviceProcAddr" (vkGetDeviceProcAddr'
-                                                        (deviceHandle (device))
-                                                        pName)
-  pure $ (r)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkGetInstanceProcAddr
-  :: FunPtr (Ptr Instance_T -> Ptr CChar -> IO PFN_vkVoidFunction) -> Ptr Instance_T -> Ptr CChar -> IO PFN_vkVoidFunction
-
--- | vkGetInstanceProcAddr - Return a function pointer for a command
---
--- = Description
---
--- 'getInstanceProcAddr' itself is obtained in a platform- and loader-
--- specific manner. Typically, the loader library will export this command
--- as a function symbol, so applications /can/ link against the loader
--- library, or load it dynamically and look up the symbol using
--- platform-specific APIs.
---
--- The table below defines the various use cases for 'getInstanceProcAddr'
--- and expected return value (“fp” is “function pointer”) for each case. A
--- valid returned function pointer (“fp”) /must/ not be @NULL@.
---
--- The returned function pointer is of type
--- 'Vulkan.Core10.FuncPointers.PFN_vkVoidFunction', and /must/ be cast to
--- the type of the command being queried before use.
---
--- +------------------+-----------------------+------------------+
--- | @instance@       | @pName@               | return value     |
--- +==================+=======================+==================+
--- | *1               | @NULL@                | undefined        |
--- +------------------+-----------------------+------------------+
--- | invalid          | *1                    | undefined        |
--- | non-@NULL@       |                       |                  |
--- | instance         |                       |                  |
--- +------------------+-----------------------+------------------+
--- | @NULL@           | /global command/2     | fp               |
--- +------------------+-----------------------+------------------+
--- | @NULL@           | 'getInstanceProcAddr' | fp5              |
--- +------------------+-----------------------+------------------+
--- | instance         | 'getInstanceProcAddr' | fp               |
--- +------------------+-----------------------+------------------+
--- | instance         | core /dispatchable    | fp3              |
--- |                  | command/              |                  |
--- +------------------+-----------------------+------------------+
--- | instance         | enabled instance      | fp3              |
--- |                  | extension             |                  |
--- |                  | dispatchable command  |                  |
--- |                  | for @instance@        |                  |
--- +------------------+-----------------------+------------------+
--- | instance         | available device      | fp3              |
--- |                  | extension4            |                  |
--- |                  | dispatchable command  |                  |
--- |                  | for @instance@        |                  |
--- +------------------+-----------------------+------------------+
--- | any other case,  |                       | @NULL@           |
--- | not covered      |                       |                  |
--- | above            |                       |                  |
--- +------------------+-----------------------+------------------+
---
--- 'getInstanceProcAddr' behavior
---
--- [1]
---     \"*\" means any representable value for the parameter (including
---     valid values, invalid values, and @NULL@).
---
--- [2]
---     The global commands are:
---     'Vulkan.Core11.DeviceInitialization.enumerateInstanceVersion',
---     'Vulkan.Core10.ExtensionDiscovery.enumerateInstanceExtensionProperties',
---     'Vulkan.Core10.LayerDiscovery.enumerateInstanceLayerProperties', and
---     'createInstance'. Dispatchable commands are all other commands which
---     are not global.
---
--- [3]
---     The returned function pointer /must/ only be called with a
---     dispatchable object (the first parameter) that is @instance@ or a
---     child of @instance@, e.g. 'Vulkan.Core10.Handles.Instance',
---     'Vulkan.Core10.Handles.PhysicalDevice',
---     'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Queue', or
---     'Vulkan.Core10.Handles.CommandBuffer'.
---
--- [4]
---     An “available device extension” is a device extension supported by
---     any physical device enumerated by @instance@.
---
--- [5]
---     Starting with Vulkan 1.2, 'getInstanceProcAddr' can resolve itself
---     with a @NULL@ instance pointer.
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkGetInstanceProcAddr-instance-parameter# If @instance@ is not
---     @NULL@, @instance@ /must/ be a valid
---     'Vulkan.Core10.Handles.Instance' handle
---
--- -   #VUID-vkGetInstanceProcAddr-pName-parameter# @pName@ /must/ be a
---     null-terminated UTF-8 string
---
--- = See Also
---
--- 'Vulkan.Core10.FuncPointers.PFN_vkVoidFunction',
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Instance'
-getInstanceProcAddr :: forall io
-                     . (MonadIO io)
-                    => -- | @instance@ is the instance that the function pointer will be compatible
-                       -- with, or @NULL@ for commands not dependent on any instance.
-                       Instance
-                    -> -- | @pName@ is the name of the command to obtain.
-                       ("name" ::: ByteString)
-                    -> io (PFN_vkVoidFunction)
-getInstanceProcAddr instance' name = liftIO . evalContT $ do
-  let vkGetInstanceProcAddrPtr = pVkGetInstanceProcAddr (case instance' of Instance{instanceCmds} -> instanceCmds)
-  lift $ unless (vkGetInstanceProcAddrPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetInstanceProcAddr is null" Nothing Nothing
-  let vkGetInstanceProcAddr' = mkVkGetInstanceProcAddr vkGetInstanceProcAddrPtr
-  pName <- ContT $ useAsCString (name)
-  r <- lift $ traceAroundEvent "vkGetInstanceProcAddr" (vkGetInstanceProcAddr'
-                                                          (instanceHandle (instance'))
-                                                          pName)
-  pure $ (r)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkGetPhysicalDeviceProperties
-  :: FunPtr (Ptr PhysicalDevice_T -> Ptr PhysicalDeviceProperties -> IO ()) -> Ptr PhysicalDevice_T -> Ptr PhysicalDeviceProperties -> IO ()
-
--- | vkGetPhysicalDeviceProperties - Returns properties of a physical device
---
--- == 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.Handles.PhysicalDevice', 'PhysicalDeviceProperties'
-getPhysicalDeviceProperties :: forall io
-                             . (MonadIO io)
-                            => -- | @physicalDevice@ is the handle to the physical device whose properties
-                               -- will be queried.
-                               --
-                               -- #VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameter#
-                               -- @physicalDevice@ /must/ be a valid
-                               -- 'Vulkan.Core10.Handles.PhysicalDevice' handle
-                               PhysicalDevice
-                            -> io (PhysicalDeviceProperties)
-getPhysicalDeviceProperties physicalDevice = liftIO . evalContT $ do
-  let vkGetPhysicalDevicePropertiesPtr = pVkGetPhysicalDeviceProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
-  lift $ unless (vkGetPhysicalDevicePropertiesPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceProperties is null" Nothing Nothing
-  let vkGetPhysicalDeviceProperties' = mkVkGetPhysicalDeviceProperties vkGetPhysicalDevicePropertiesPtr
-  pPProperties <- ContT (withZeroCStruct @PhysicalDeviceProperties)
-  lift $ traceAroundEvent "vkGetPhysicalDeviceProperties" (vkGetPhysicalDeviceProperties'
-                                                             (physicalDeviceHandle (physicalDevice))
-                                                             (pPProperties))
-  pProperties <- lift $ peekCStruct @PhysicalDeviceProperties pPProperties
-  pure $ (pProperties)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkGetPhysicalDeviceQueueFamilyProperties
-  :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr QueueFamilyProperties -> IO ()) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr QueueFamilyProperties -> IO ()
-
--- | vkGetPhysicalDeviceQueueFamilyProperties - Reports properties of the
--- queues of the specified physical device
---
--- = Description
---
--- If @pQueueFamilyProperties@ is @NULL@, then the number of queue families
--- available is returned in @pQueueFamilyPropertyCount@. Implementations
--- /must/ support at least one queue family. Otherwise,
--- @pQueueFamilyPropertyCount@ /must/ point to a variable set by the user
--- to the number of elements in the @pQueueFamilyProperties@ array, and on
--- return the variable is overwritten with the number of structures
--- actually written to @pQueueFamilyProperties@. If
--- @pQueueFamilyPropertyCount@ is less than the number of queue families
--- available, at most @pQueueFamilyPropertyCount@ structures will be
--- written.
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkGetPhysicalDeviceQueueFamilyProperties-physicalDevice-parameter#
---     @physicalDevice@ /must/ be a valid
---     'Vulkan.Core10.Handles.PhysicalDevice' handle
---
--- -   #VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyPropertyCount-parameter#
---     @pQueueFamilyPropertyCount@ /must/ be a valid pointer to a
---     @uint32_t@ value
---
--- -   #VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyProperties-parameter#
---     If the value referenced by @pQueueFamilyPropertyCount@ is not @0@,
---     and @pQueueFamilyProperties@ is not @NULL@, @pQueueFamilyProperties@
---     /must/ be a valid pointer to an array of @pQueueFamilyPropertyCount@
---     'QueueFamilyProperties' 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.Handles.PhysicalDevice', 'QueueFamilyProperties'
-getPhysicalDeviceQueueFamilyProperties :: forall io
-                                        . (MonadIO io)
-                                       => -- | @physicalDevice@ is the handle to the physical device whose properties
-                                          -- will be queried.
-                                          PhysicalDevice
-                                       -> io (("queueFamilyProperties" ::: Vector QueueFamilyProperties))
-getPhysicalDeviceQueueFamilyProperties physicalDevice = liftIO . evalContT $ do
-  let vkGetPhysicalDeviceQueueFamilyPropertiesPtr = pVkGetPhysicalDeviceQueueFamilyProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
-  lift $ unless (vkGetPhysicalDeviceQueueFamilyPropertiesPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceQueueFamilyProperties is null" Nothing Nothing
-  let vkGetPhysicalDeviceQueueFamilyProperties' = mkVkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyPropertiesPtr
-  let physicalDevice' = physicalDeviceHandle (physicalDevice)
-  pPQueueFamilyPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free
-  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties" (vkGetPhysicalDeviceQueueFamilyProperties'
-                                                                        physicalDevice'
-                                                                        (pPQueueFamilyPropertyCount)
-                                                                        (nullPtr))
-  pQueueFamilyPropertyCount <- lift $ peek @Word32 pPQueueFamilyPropertyCount
-  pPQueueFamilyProperties <- ContT $ bracket (callocBytes @QueueFamilyProperties ((fromIntegral (pQueueFamilyPropertyCount)) * 24)) free
-  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPQueueFamilyProperties `advancePtrBytes` (i * 24) :: Ptr QueueFamilyProperties) . ($ ())) [0..(fromIntegral (pQueueFamilyPropertyCount)) - 1]
-  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties" (vkGetPhysicalDeviceQueueFamilyProperties'
-                                                                        physicalDevice'
-                                                                        (pPQueueFamilyPropertyCount)
-                                                                        ((pPQueueFamilyProperties)))
-  pQueueFamilyPropertyCount' <- lift $ peek @Word32 pPQueueFamilyPropertyCount
-  pQueueFamilyProperties' <- lift $ generateM (fromIntegral (pQueueFamilyPropertyCount')) (\i -> peekCStruct @QueueFamilyProperties (((pPQueueFamilyProperties) `advancePtrBytes` (24 * (i)) :: Ptr QueueFamilyProperties)))
-  pure $ (pQueueFamilyProperties')
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkGetPhysicalDeviceMemoryProperties
-  :: FunPtr (Ptr PhysicalDevice_T -> Ptr PhysicalDeviceMemoryProperties -> IO ()) -> Ptr PhysicalDevice_T -> Ptr PhysicalDeviceMemoryProperties -> IO ()
-
--- | vkGetPhysicalDeviceMemoryProperties - Reports memory information for the
--- specified physical device
---
--- == 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.Handles.PhysicalDevice', 'PhysicalDeviceMemoryProperties'
-getPhysicalDeviceMemoryProperties :: forall io
-                                   . (MonadIO io)
-                                  => -- | @physicalDevice@ is the handle to the device to query.
-                                     --
-                                     -- #VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameter#
-                                     -- @physicalDevice@ /must/ be a valid
-                                     -- 'Vulkan.Core10.Handles.PhysicalDevice' handle
-                                     PhysicalDevice
-                                  -> io (PhysicalDeviceMemoryProperties)
-getPhysicalDeviceMemoryProperties physicalDevice = liftIO . evalContT $ do
-  let vkGetPhysicalDeviceMemoryPropertiesPtr = pVkGetPhysicalDeviceMemoryProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
-  lift $ unless (vkGetPhysicalDeviceMemoryPropertiesPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceMemoryProperties is null" Nothing Nothing
-  let vkGetPhysicalDeviceMemoryProperties' = mkVkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryPropertiesPtr
-  pPMemoryProperties <- ContT (withZeroCStruct @PhysicalDeviceMemoryProperties)
-  lift $ traceAroundEvent "vkGetPhysicalDeviceMemoryProperties" (vkGetPhysicalDeviceMemoryProperties'
-                                                                   (physicalDeviceHandle (physicalDevice))
-                                                                   (pPMemoryProperties))
-  pMemoryProperties <- lift $ peekCStruct @PhysicalDeviceMemoryProperties pPMemoryProperties
-  pure $ (pMemoryProperties)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkGetPhysicalDeviceFeatures
-  :: FunPtr (Ptr PhysicalDevice_T -> Ptr PhysicalDeviceFeatures -> IO ()) -> Ptr PhysicalDevice_T -> Ptr PhysicalDeviceFeatures -> IO ()
-
--- | vkGetPhysicalDeviceFeatures - Reports capabilities of a physical device
---
--- == 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.Handles.PhysicalDevice', 'PhysicalDeviceFeatures'
-getPhysicalDeviceFeatures :: forall io
-                           . (MonadIO io)
-                          => -- | @physicalDevice@ is the physical device from which to query the
-                             -- supported features.
-                             --
-                             -- #VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameter#
-                             -- @physicalDevice@ /must/ be a valid
-                             -- 'Vulkan.Core10.Handles.PhysicalDevice' handle
-                             PhysicalDevice
-                          -> io (PhysicalDeviceFeatures)
-getPhysicalDeviceFeatures physicalDevice = liftIO . evalContT $ do
-  let vkGetPhysicalDeviceFeaturesPtr = pVkGetPhysicalDeviceFeatures (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
-  lift $ unless (vkGetPhysicalDeviceFeaturesPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceFeatures is null" Nothing Nothing
-  let vkGetPhysicalDeviceFeatures' = mkVkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeaturesPtr
-  pPFeatures <- ContT (withZeroCStruct @PhysicalDeviceFeatures)
-  lift $ traceAroundEvent "vkGetPhysicalDeviceFeatures" (vkGetPhysicalDeviceFeatures'
-                                                           (physicalDeviceHandle (physicalDevice))
-                                                           (pPFeatures))
-  pFeatures <- lift $ peekCStruct @PhysicalDeviceFeatures pPFeatures
-  pure $ (pFeatures)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkGetPhysicalDeviceFormatProperties
-  :: FunPtr (Ptr PhysicalDevice_T -> Format -> Ptr FormatProperties -> IO ()) -> Ptr PhysicalDevice_T -> Format -> Ptr FormatProperties -> IO ()
-
--- | vkGetPhysicalDeviceFormatProperties - Lists physical device’s format
--- capabilities
---
--- == 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.Format.Format', 'FormatProperties',
--- 'Vulkan.Core10.Handles.PhysicalDevice'
-getPhysicalDeviceFormatProperties :: forall io
-                                   . (MonadIO io)
-                                  => -- | @physicalDevice@ is the physical device from which to query the format
-                                     -- properties.
-                                     --
-                                     -- #VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameter#
-                                     -- @physicalDevice@ /must/ be a valid
-                                     -- 'Vulkan.Core10.Handles.PhysicalDevice' handle
-                                     PhysicalDevice
-                                  -> -- | @format@ is the format whose properties are queried.
-                                     --
-                                     -- #VUID-vkGetPhysicalDeviceFormatProperties-format-parameter# @format@
-                                     -- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value
-                                     Format
-                                  -> io (FormatProperties)
-getPhysicalDeviceFormatProperties physicalDevice
-                                    format = liftIO . evalContT $ do
-  let vkGetPhysicalDeviceFormatPropertiesPtr = pVkGetPhysicalDeviceFormatProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
-  lift $ unless (vkGetPhysicalDeviceFormatPropertiesPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceFormatProperties is null" Nothing Nothing
-  let vkGetPhysicalDeviceFormatProperties' = mkVkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatPropertiesPtr
-  pPFormatProperties <- ContT (withZeroCStruct @FormatProperties)
-  lift $ traceAroundEvent "vkGetPhysicalDeviceFormatProperties" (vkGetPhysicalDeviceFormatProperties'
-                                                                   (physicalDeviceHandle (physicalDevice))
-                                                                   (format)
-                                                                   (pPFormatProperties))
-  pFormatProperties <- lift $ peekCStruct @FormatProperties pPFormatProperties
-  pure $ (pFormatProperties)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkGetPhysicalDeviceImageFormatProperties
-  :: FunPtr (Ptr PhysicalDevice_T -> Format -> ImageType -> ImageTiling -> ImageUsageFlags -> ImageCreateFlags -> Ptr ImageFormatProperties -> IO Result) -> Ptr PhysicalDevice_T -> Format -> ImageType -> ImageTiling -> ImageUsageFlags -> ImageCreateFlags -> Ptr ImageFormatProperties -> IO Result
-
--- | vkGetPhysicalDeviceImageFormatProperties - Lists physical device’s image
--- format capabilities
---
--- = Description
---
--- The @format@, @type@, @tiling@, @usage@, and @flags@ parameters
--- correspond to parameters that would be consumed by
--- 'Vulkan.Core10.Image.createImage' (as members of
--- 'Vulkan.Core10.Image.ImageCreateInfo').
---
--- If @format@ is not a supported image format, or if the combination of
--- @format@, @type@, @tiling@, @usage@, and @flags@ is not supported for
--- images, then 'getPhysicalDeviceImageFormatProperties' returns
--- 'Vulkan.Core10.Enums.Result.ERROR_FORMAT_NOT_SUPPORTED'.
---
--- The limitations on an image format that are reported by
--- 'getPhysicalDeviceImageFormatProperties' have the following property: if
--- @usage1@ and @usage2@ of type
--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlags' are such that
--- the bits set in @usage1@ are a subset of the bits set in @usage2@, and
--- @flags1@ and @flags2@ of type
--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlags' are such that
--- the bits set in @flags1@ are a subset of the bits set in @flags2@, then
--- the limitations for @usage1@ and @flags1@ /must/ be no more strict than
--- 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>]
---
---     -   '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'
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_FORMAT_NOT_SUPPORTED'
---
--- = 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',
--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlags',
--- 'ImageFormatProperties', 'Vulkan.Core10.Enums.ImageTiling.ImageTiling',
--- 'Vulkan.Core10.Enums.ImageType.ImageType',
--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlags',
--- 'Vulkan.Core10.Handles.PhysicalDevice'
-getPhysicalDeviceImageFormatProperties :: forall io
-                                        . (MonadIO io)
-                                       => -- | @physicalDevice@ is the physical device from which to query the image
-                                          -- capabilities.
-                                          --
-                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-physicalDevice-parameter#
-                                          -- @physicalDevice@ /must/ be a valid
-                                          -- 'Vulkan.Core10.Handles.PhysicalDevice' handle
-                                          PhysicalDevice
-                                       -> -- | @format@ is a 'Vulkan.Core10.Enums.Format.Format' value specifying the
-                                          -- image format, corresponding to
-                                          -- 'Vulkan.Core10.Image.ImageCreateInfo'::@format@.
-                                          --
-                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-format-parameter#
-                                          -- @format@ /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value
-                                          Format
-                                       -> -- | @type@ is a 'Vulkan.Core10.Enums.ImageType.ImageType' value specifying
-                                          -- the image type, corresponding to
-                                          -- 'Vulkan.Core10.Image.ImageCreateInfo'::@imageType@.
-                                          --
-                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-type-parameter# @type@
-                                          -- /must/ be a valid 'Vulkan.Core10.Enums.ImageType.ImageType' value
-                                          ImageType
-                                       -> -- | @tiling@ is a 'Vulkan.Core10.Enums.ImageTiling.ImageTiling' value
-                                          -- specifying the image tiling, corresponding to
-                                          -- 'Vulkan.Core10.Image.ImageCreateInfo'::@tiling@.
-                                          --
-                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-02248# @tiling@
-                                          -- /must/ not be
-                                          -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'.
-                                          -- (Use
-                                          -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'
-                                          -- instead)
-                                          --
-                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-parameter#
-                                          -- @tiling@ /must/ be a valid 'Vulkan.Core10.Enums.ImageTiling.ImageTiling'
-                                          -- value
-                                          ImageTiling
-                                       -> -- | @usage@ is a bitmask of
-                                          -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' specifying
-                                          -- the intended usage of the image, corresponding to
-                                          -- 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@.
-                                          --
-                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-usage-parameter# @usage@
-                                          -- /must/ be a valid combination of
-                                          -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' values
-                                          --
-                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-usage-requiredbitmask#
-                                          -- @usage@ /must/ not be @0@
-                                          ImageUsageFlags
-                                       -> -- | @flags@ is a bitmask of
-                                          -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits' specifying
-                                          -- additional parameters of the image, corresponding to
-                                          -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@.
-                                          --
-                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-flags-parameter# @flags@
-                                          -- /must/ be a valid combination of
-                                          -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits' values
-                                          ImageCreateFlags
-                                       -> io (ImageFormatProperties)
-getPhysicalDeviceImageFormatProperties physicalDevice
-                                         format
-                                         type'
-                                         tiling
-                                         usage
-                                         flags = liftIO . evalContT $ do
-  let vkGetPhysicalDeviceImageFormatPropertiesPtr = pVkGetPhysicalDeviceImageFormatProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
-  lift $ unless (vkGetPhysicalDeviceImageFormatPropertiesPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceImageFormatProperties is null" Nothing Nothing
-  let vkGetPhysicalDeviceImageFormatProperties' = mkVkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatPropertiesPtr
-  pPImageFormatProperties <- ContT (withZeroCStruct @ImageFormatProperties)
-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceImageFormatProperties" (vkGetPhysicalDeviceImageFormatProperties'
-                                                                             (physicalDeviceHandle (physicalDevice))
-                                                                             (format)
-                                                                             (type')
-                                                                             (tiling)
-                                                                             (usage)
-                                                                             (flags)
-                                                                             (pPImageFormatProperties))
-  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
-  pImageFormatProperties <- lift $ peekCStruct @ImageFormatProperties pPImageFormatProperties
-  pure $ (pImageFormatProperties)
-
-
--- | VkPhysicalDeviceProperties - Structure specifying physical device
--- properties
---
--- = Description
---
--- Note
---
--- The value of @apiVersion@ /may/ be different than the version returned
--- by 'Vulkan.Core11.DeviceInitialization.enumerateInstanceVersion'; either
--- higher or lower. In such cases, the application /must/ not use
--- functionality that exceeds the version of Vulkan associated with a given
--- object. The @pApiVersion@ parameter returned by
--- 'Vulkan.Core11.DeviceInitialization.enumerateInstanceVersion' is the
--- version associated with a 'Vulkan.Core10.Handles.Instance' and its
--- children, except for a 'Vulkan.Core10.Handles.PhysicalDevice' and its
--- children. 'PhysicalDeviceProperties'::@apiVersion@ is the version
--- associated with a 'Vulkan.Core10.Handles.PhysicalDevice' and its
--- children.
---
--- Note
---
--- The encoding of @driverVersion@ is implementation-defined. It /may/ not
--- use the same encoding as @apiVersion@. Applications should follow
--- information from the /vendor/ on how to extract the version information
--- from @driverVersion@.
---
--- On implementations that claim support for the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#roadmap-2022 Roadmap 2022>
--- profile, the major and minor version expressed by @apiVersion@ /must/ be
--- at least Vulkan 1.3.
---
--- The @vendorID@ and @deviceID@ fields are provided to allow applications
--- to adapt to device characteristics that are not adequately exposed by
--- other Vulkan queries.
---
--- Note
---
--- These /may/ include performance profiles, hardware errata, or other
--- characteristics.
---
--- The /vendor/ identified by @vendorID@ is the entity responsible for the
--- most salient characteristics of the underlying implementation of the
--- 'Vulkan.Core10.Handles.PhysicalDevice' being queried.
---
--- Note
---
--- For example, in the case of a discrete GPU implementation, this /should/
--- be the GPU chipset vendor. In the case of a hardware accelerator
--- integrated into a system-on-chip (SoC), this /should/ be the supplier of
--- the silicon IP used to create the accelerator.
---
--- If the vendor has a
--- <https://pcisig.com/membership/member-companies PCI vendor ID>, the low
--- 16 bits of @vendorID@ /must/ contain that PCI vendor ID, and the
--- remaining bits /must/ be set to zero. Otherwise, the value returned
--- /must/ be a valid Khronos vendor ID, obtained as described in the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vulkan-styleguide Vulkan Documentation and Extensions: Procedures and Conventions>
--- document in the section “Registering a Vendor ID with Khronos”. Khronos
--- vendor IDs are allocated starting at 0x10000, to distinguish them from
--- the PCI vendor ID namespace. Khronos vendor IDs are symbolically defined
--- in the 'Vulkan.Core10.Enums.VendorId.VendorId' type.
---
--- The vendor is also responsible for the value returned in @deviceID@. If
--- the implementation is driven primarily by a
--- <https://pcisig.com/ PCI device> with a
--- <https://pcisig.com/ PCI device ID>, the low 16 bits of @deviceID@
--- /must/ contain that PCI device ID, and the remaining bits /must/ be set
--- to zero. Otherwise, the choice of what values to return /may/ be
--- dictated by operating system or platform policies - but /should/
--- uniquely identify both the device version and any major configuration
--- options (for example, core count in the case of multicore devices).
---
--- Note
---
--- The same device ID /should/ be used for all physical implementations of
--- that device version and configuration. For example, all uses of a
--- specific silicon IP GPU version and configuration /should/ use the same
--- device ID, even if those uses occur in different SoCs.
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'PhysicalDeviceLimits',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',
--- 'PhysicalDeviceSparseProperties',
--- 'Vulkan.Core10.Enums.PhysicalDeviceType.PhysicalDeviceType',
--- 'getPhysicalDeviceProperties'
-data PhysicalDeviceProperties = PhysicalDeviceProperties
-  { -- | @apiVersion@ is the version of Vulkan supported by the device, encoded
-    -- as described in
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.
-    apiVersion :: Word32
-  , -- | @driverVersion@ is the vendor-specified version of the driver.
-    driverVersion :: Word32
-  , -- | @vendorID@ is a unique identifier for the /vendor/ (see below) of the
-    -- physical device.
-    vendorID :: Word32
-  , -- | @deviceID@ is a unique identifier for the physical device among devices
-    -- available from the vendor.
-    deviceID :: Word32
-  , -- | @deviceType@ is a
-    -- 'Vulkan.Core10.Enums.PhysicalDeviceType.PhysicalDeviceType' specifying
-    -- the type of device.
-    deviceType :: PhysicalDeviceType
-  , -- | @deviceName@ is an array of
-    -- 'Vulkan.Core10.APIConstants.MAX_PHYSICAL_DEVICE_NAME_SIZE' @char@
-    -- containing a null-terminated UTF-8 string which is the name of the
-    -- device.
-    deviceName :: ByteString
-  , -- | @pipelineCacheUUID@ is an array of
-    -- 'Vulkan.Core10.APIConstants.UUID_SIZE' @uint8_t@ values representing a
-    -- universally unique identifier for the device.
-    pipelineCacheUUID :: ByteString
-  , -- | @limits@ is the 'PhysicalDeviceLimits' structure specifying
-    -- device-specific limits of the physical device. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits Limits>
-    -- for details.
-    limits :: PhysicalDeviceLimits
-  , -- | @sparseProperties@ is the 'PhysicalDeviceSparseProperties' structure
-    -- specifying various sparse related properties of the physical device. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-physicalprops Sparse Properties>
-    -- for details.
-    sparseProperties :: PhysicalDeviceSparseProperties
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceProperties)
-#endif
-deriving instance Show PhysicalDeviceProperties
-
-instance ToCStruct PhysicalDeviceProperties where
-  withCStruct x f = allocaBytes 824 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceProperties{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (apiVersion)
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (driverVersion)
-    poke ((p `plusPtr` 8 :: Ptr Word32)) (vendorID)
-    poke ((p `plusPtr` 12 :: Ptr Word32)) (deviceID)
-    poke ((p `plusPtr` 16 :: Ptr PhysicalDeviceType)) (deviceType)
-    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 20 :: Ptr (FixedArray MAX_PHYSICAL_DEVICE_NAME_SIZE CChar))) (deviceName)
-    pokeFixedLengthByteString ((p `plusPtr` 276 :: Ptr (FixedArray UUID_SIZE Word8))) (pipelineCacheUUID)
-    poke ((p `plusPtr` 296 :: Ptr PhysicalDeviceLimits)) (limits)
-    poke ((p `plusPtr` 800 :: Ptr PhysicalDeviceSparseProperties)) (sparseProperties)
-    f
-  cStructSize = 824
-  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 Word32)) (zero)
-    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 16 :: Ptr PhysicalDeviceType)) (zero)
-    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 20 :: Ptr (FixedArray MAX_PHYSICAL_DEVICE_NAME_SIZE CChar))) (mempty)
-    pokeFixedLengthByteString ((p `plusPtr` 276 :: Ptr (FixedArray UUID_SIZE Word8))) (mempty)
-    poke ((p `plusPtr` 296 :: Ptr PhysicalDeviceLimits)) (zero)
-    poke ((p `plusPtr` 800 :: Ptr PhysicalDeviceSparseProperties)) (zero)
-    f
-
-instance FromCStruct PhysicalDeviceProperties where
-  peekCStruct p = do
-    apiVersion <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
-    driverVersion <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
-    vendorID <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
-    deviceID <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
-    deviceType <- peek @PhysicalDeviceType ((p `plusPtr` 16 :: Ptr PhysicalDeviceType))
-    deviceName <- packCString (lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray MAX_PHYSICAL_DEVICE_NAME_SIZE CChar))))
-    pipelineCacheUUID <- peekByteStringFromSizedVectorPtr ((p `plusPtr` 276 :: Ptr (FixedArray UUID_SIZE Word8)))
-    limits <- peekCStruct @PhysicalDeviceLimits ((p `plusPtr` 296 :: Ptr PhysicalDeviceLimits))
-    sparseProperties <- peekCStruct @PhysicalDeviceSparseProperties ((p `plusPtr` 800 :: Ptr PhysicalDeviceSparseProperties))
-    pure $ PhysicalDeviceProperties
-             apiVersion
-             driverVersion
-             vendorID
-             deviceID
-             deviceType
-             deviceName
-             pipelineCacheUUID
-             limits
-             sparseProperties
-
-instance Storable PhysicalDeviceProperties where
-  sizeOf ~_ = 824
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PhysicalDeviceProperties where
-  zero = PhysicalDeviceProperties
-           zero
-           zero
-           zero
-           zero
-           zero
-           mempty
-           mempty
-           zero
-           zero
-
-
--- | VkApplicationInfo - Structure specifying application information
---
--- = Description
---
--- Vulkan 1.0 implementations were required to return
--- '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@ .
---
--- Note
---
--- Because Vulkan 1.0 implementations /may/ fail with
--- 'Vulkan.Core10.Enums.Result.ERROR_INCOMPATIBLE_DRIVER', applications
--- /should/ determine the version of Vulkan available before calling
--- 'createInstance'. If the 'getInstanceProcAddr' returns @NULL@ for
--- 'Vulkan.Core11.DeviceInitialization.enumerateInstanceVersion', it is a
--- Vulkan 1.0 implementation. Otherwise, the application /can/ call
--- 'Vulkan.Core11.DeviceInitialization.enumerateInstanceVersion' to
--- determine the version of Vulkan.
---
--- As long as the instance supports at least Vulkan 1.1, an application
--- /can/ use different versions of Vulkan with an instance than it does
--- with a device or physical device.
---
--- Note
---
--- The Khronos validation layers will treat @apiVersion@ as the highest API
--- version the application targets, and will validate API usage against the
--- minimum of that version and the implementation version (instance or
--- device, depending on context). If an application tries to use
--- functionality from a greater version than this, a validation error will
--- be triggered.
---
--- For example, if the instance supports Vulkan 1.1 and three physical
--- devices support Vulkan 1.0, Vulkan 1.1, and Vulkan 1.2, respectively,
--- and if the application sets @apiVersion@ to 1.2, the application /can/
--- use the following versions of Vulkan:
---
--- -   Vulkan 1.0 /can/ be used with the instance and with all physical
---     devices.
---
--- -   Vulkan 1.1 /can/ be used with the instance and with the physical
---     devices that support Vulkan 1.1 and Vulkan 1.2.
---
--- -   Vulkan 1.2 /can/ be used with the physical device that supports
---     Vulkan 1.2.
---
--- If we modify the above example so that the application sets @apiVersion@
--- to 1.1, then the application /must/ not use Vulkan 1.2 functionality on
--- the physical device that supports Vulkan 1.2.
---
--- Note
---
--- Providing a @NULL@ 'InstanceCreateInfo'::@pApplicationInfo@ or providing
--- an @apiVersion@ of 0 is equivalent to providing an @apiVersion@ of
--- @VK_MAKE_API_VERSION(0,1,0,0)@.
---
--- == Valid Usage
---
--- -   #VUID-VkApplicationInfo-apiVersion-04010# If @apiVersion@ is not
---     @0@, then it /must/ be greater than or equal to
---     'Vulkan.Core10.API_VERSION_1_0'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkApplicationInfo-sType-sType# @sType@ /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_APPLICATION_INFO'
---
--- -   #VUID-VkApplicationInfo-pNext-pNext# @pNext@ /must/ be @NULL@
---
--- -   #VUID-VkApplicationInfo-pApplicationName-parameter# If
---     @pApplicationName@ is not @NULL@, @pApplicationName@ /must/ be a
---     null-terminated UTF-8 string
---
--- -   #VUID-VkApplicationInfo-pEngineName-parameter# If @pEngineName@ is
---     not @NULL@, @pEngineName@ /must/ be a null-terminated UTF-8 string
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'InstanceCreateInfo', 'Vulkan.Core10.Enums.StructureType.StructureType'
-data ApplicationInfo = ApplicationInfo
-  { -- | @pApplicationName@ is @NULL@ or is a pointer to a null-terminated UTF-8
-    -- string containing the name of the application.
-    applicationName :: Maybe ByteString
-  , -- | @applicationVersion@ is an unsigned integer variable containing the
-    -- developer-supplied version number of the application.
-    applicationVersion :: Word32
-  , -- | @pEngineName@ is @NULL@ or is a pointer to a null-terminated UTF-8
-    -- string containing the name of the engine (if any) used to create the
-    -- application.
-    engineName :: Maybe ByteString
-  , -- | @engineVersion@ is an unsigned integer variable containing the
-    -- developer-supplied version number of the engine used to create the
-    -- application.
-    engineVersion :: Word32
-  , -- | @apiVersion@ /must/ be the highest version of Vulkan that the
-    -- 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. The variant version of the instance /must/
-    -- match that requested in @apiVersion@.
-    apiVersion :: Word32
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (ApplicationInfo)
-#endif
-deriving instance Show ApplicationInfo
-
-instance ToCStruct ApplicationInfo where
-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p ApplicationInfo{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_APPLICATION_INFO)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    pApplicationName'' <- case (applicationName) of
-      Nothing -> pure nullPtr
-      Just j -> ContT $ useAsCString (j)
-    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr CChar))) pApplicationName''
-    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (applicationVersion)
-    pEngineName'' <- case (engineName) of
-      Nothing -> pure nullPtr
-      Just j -> ContT $ useAsCString (j)
-    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr CChar))) pEngineName''
-    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (engineVersion)
-    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) (apiVersion)
-    lift $ f
-  cStructSize = 48
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_APPLICATION_INFO)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct ApplicationInfo where
-  peekCStruct p = do
-    pApplicationName <- peek @(Ptr CChar) ((p `plusPtr` 16 :: Ptr (Ptr CChar)))
-    pApplicationName' <- maybePeek (\j -> packCString (j)) pApplicationName
-    applicationVersion <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
-    pEngineName <- peek @(Ptr CChar) ((p `plusPtr` 32 :: Ptr (Ptr CChar)))
-    pEngineName' <- maybePeek (\j -> packCString (j)) pEngineName
-    engineVersion <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
-    apiVersion <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))
-    pure $ ApplicationInfo
-             pApplicationName'
-             applicationVersion
-             pEngineName'
-             engineVersion
-             apiVersion
-
-instance Zero ApplicationInfo where
-  zero = ApplicationInfo
-           Nothing
-           zero
-           Nothing
-           zero
-           zero
-
-
--- | VkInstanceCreateInfo - Structure specifying parameters of a newly
--- created instance
---
--- = Description
---
--- To capture events that occur while creating or destroying an instance,
--- an application /can/ link a
--- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportCallbackCreateInfoEXT'
--- structure or a
--- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT'
--- structure to the @pNext@ element of the 'InstanceCreateInfo' structure
--- given to 'createInstance'. This callback is only valid for the duration
--- of the 'createInstance' and the 'destroyInstance' call. Use
--- 'Vulkan.Extensions.VK_EXT_debug_report.createDebugReportCallbackEXT' or
--- 'Vulkan.Extensions.VK_EXT_debug_utils.createDebugUtilsMessengerEXT' to
--- create persistent callback objects.
---
--- An application can add additional drivers by including the
--- 'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingListLUNARG'
--- struct to the @pNext@ element of the 'InstanceCreateInfo' structure
--- given to 'createInstance'.
---
--- Note
---
--- 'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingListLUNARG'
--- allows applications to ship drivers with themselves. Only drivers that
--- are designed to work with it should be used, such as drivers that
--- implement Vulkan in software or that implement Vulkan by translating it
--- to a different API. Any driver that requires installation should not be
--- used, such as hardware drivers.
---
--- == Valid Usage
---
--- -   #VUID-VkInstanceCreateInfo-pNext-04925# If the @pNext@ chain of
---     'InstanceCreateInfo' includes a
---     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportCallbackCreateInfoEXT'
---     structure, the list of enabled extensions in
---     @ppEnabledExtensionNames@ /must/ contain @VK_EXT_debug_report@
---
--- -   #VUID-VkInstanceCreateInfo-pNext-04926# If the @pNext@ chain of
---     'InstanceCreateInfo' includes a
---     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT'
---     structure, the list of enabled extensions in
---     @ppEnabledExtensionNames@ /must/ contain @VK_EXT_debug_utils@
---
--- -   #VUID-VkInstanceCreateInfo-pNext-06779# If the @pNext@ chain
---     includes a
---     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'
---     structure, its @exportObjectType@ member /must/ be either
---     'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT'
---
--- -   #VUID-VkInstanceCreateInfo-flags-06559# If @flags@ has the
---     'Vulkan.Core10.Enums.InstanceCreateFlagBits.INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR'
---     bit set, the list of enabled extensions in @ppEnabledExtensionNames@
---     /must/ contain @VK_KHR_portability_enumeration@
---
--- -   #VUID-VkInstanceCreateInfo-pNext-09400# If the @pNext@ chain of
---     'InstanceCreateInfo' includes a
---     'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingListLUNARG'
---     structure, the list of enabled extensions in
---     @ppEnabledExtensionNames@ /must/ contain
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_LUNARG_direct_driver_loading VK_LUNARG_direct_driver_loading>
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkInstanceCreateInfo-sType-sType# @sType@ /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INSTANCE_CREATE_INFO'
---
--- -   #VUID-VkInstanceCreateInfo-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_report.DebugReportCallbackCreateInfoEXT',
---     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT',
---     'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingListLUNARG',
---     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT',
---     'Vulkan.Extensions.VK_EXT_layer_settings.LayerSettingsCreateInfoEXT',
---     'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT',
---     or 'Vulkan.Extensions.VK_EXT_validation_flags.ValidationFlagsEXT'
---
--- -   #VUID-VkInstanceCreateInfo-sType-unique# The @sType@ value of each
---     struct in the @pNext@ chain /must/ be unique, with the exception of
---     structures of type
---     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT',
---     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT',
---     or
---     'Vulkan.Extensions.VK_EXT_layer_settings.LayerSettingsCreateInfoEXT'
---
--- -   #VUID-VkInstanceCreateInfo-flags-parameter# @flags@ /must/ be a
---     valid combination of
---     'Vulkan.Core10.Enums.InstanceCreateFlagBits.InstanceCreateFlagBits'
---     values
---
--- -   #VUID-VkInstanceCreateInfo-pApplicationInfo-parameter# If
---     @pApplicationInfo@ is not @NULL@, @pApplicationInfo@ /must/ be a
---     valid pointer to a valid 'ApplicationInfo' structure
---
--- -   #VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameter# If
---     @enabledLayerCount@ is not @0@, @ppEnabledLayerNames@ /must/ be a
---     valid pointer to an array of @enabledLayerCount@ null-terminated
---     UTF-8 strings
---
--- -   #VUID-VkInstanceCreateInfo-ppEnabledExtensionNames-parameter# If
---     @enabledExtensionCount@ is not @0@, @ppEnabledExtensionNames@ /must/
---     be a valid pointer to an array of @enabledExtensionCount@
---     null-terminated UTF-8 strings
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'ApplicationInfo',
--- 'Vulkan.Core10.Enums.InstanceCreateFlagBits.InstanceCreateFlags',
--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'createInstance'
-data InstanceCreateInfo (es :: [Type]) = InstanceCreateInfo
-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
-    next :: Chain es
-  , -- | @flags@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.InstanceCreateFlagBits.InstanceCreateFlagBits'
-    -- indicating the behavior of the instance.
-    flags :: InstanceCreateFlags
-  , -- | @pApplicationInfo@ is @NULL@ or a pointer to a 'ApplicationInfo'
-    -- structure. If not @NULL@, this information helps implementations
-    -- recognize behavior inherent to classes of applications.
-    -- 'ApplicationInfo' is defined in detail below.
-    applicationInfo :: Maybe ApplicationInfo
-  , -- | @ppEnabledLayerNames@ is a pointer to an array of @enabledLayerCount@
-    -- null-terminated UTF-8 strings containing the names of layers to enable
-    -- for the created instance. The layers are loaded in the order they are
-    -- listed in this array, with the first array element being the closest to
-    -- the application, and the last array element being the closest to the
-    -- driver. See the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-layers>
-    -- section for further details.
-    enabledLayerNames :: Vector ByteString
-  , -- | @ppEnabledExtensionNames@ is a pointer to an array of
-    -- @enabledExtensionCount@ null-terminated UTF-8 strings containing the
-    -- names of extensions to enable.
-    enabledExtensionNames :: Vector ByteString
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (InstanceCreateInfo (es :: [Type]))
-#endif
-deriving instance Show (Chain es) => Show (InstanceCreateInfo es)
-
-instance Extensible InstanceCreateInfo where
-  extensibleTypeName = "InstanceCreateInfo"
-  setNext InstanceCreateInfo{..} next' = InstanceCreateInfo{next = next', ..}
-  getNext InstanceCreateInfo{..} = next
-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends InstanceCreateInfo e => b) -> Maybe b
-  extends _ f
-    | Just Refl <- eqT @e @DirectDriverLoadingListLUNARG = Just f
-    | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @DebugUtilsMessengerCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @LayerSettingsCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @ValidationFeaturesEXT = Just f
-    | Just Refl <- eqT @e @ValidationFlagsEXT = Just f
-    | Just Refl <- eqT @e @DebugReportCallbackCreateInfoEXT = Just f
-    | otherwise = Nothing
-
-instance ( Extendss InstanceCreateInfo es
-         , PokeChain es ) => ToCStruct (InstanceCreateInfo es) where
-  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p InstanceCreateInfo{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
-    pNext'' <- fmap castPtr . ContT $ withChain (next)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
-    lift $ poke ((p `plusPtr` 16 :: Ptr InstanceCreateFlags)) (flags)
-    pApplicationInfo'' <- case (applicationInfo) of
-      Nothing -> pure nullPtr
-      Just j -> ContT $ withCStruct (j)
-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ApplicationInfo))) pApplicationInfo''
-    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (enabledLayerNames)) :: Word32))
-    pPpEnabledLayerNames' <- ContT $ allocaBytes @(Ptr CChar) ((Data.Vector.length (enabledLayerNames)) * 8)
-    Data.Vector.imapM_ (\i e -> do
-      ppEnabledLayerNames'' <- ContT $ useAsCString (e)
-      lift $ poke (pPpEnabledLayerNames' `plusPtr` (8 * (i)) :: Ptr (Ptr CChar)) ppEnabledLayerNames'') (enabledLayerNames)
-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (Ptr CChar)))) (pPpEnabledLayerNames')
-    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (enabledExtensionNames)) :: Word32))
-    pPpEnabledExtensionNames' <- ContT $ allocaBytes @(Ptr CChar) ((Data.Vector.length (enabledExtensionNames)) * 8)
-    Data.Vector.imapM_ (\i e -> do
-      ppEnabledExtensionNames'' <- ContT $ useAsCString (e)
-      lift $ poke (pPpEnabledExtensionNames' `plusPtr` (8 * (i)) :: Ptr (Ptr CChar)) ppEnabledExtensionNames'') (enabledExtensionNames)
-    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (Ptr CChar)))) (pPpEnabledExtensionNames')
-    lift $ f
-  cStructSize = 64
-  cStructAlignment = 8
-  pokeZeroCStruct p f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
-    pNext' <- fmap castPtr . ContT $ withZeroChain @es
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
-    lift $ f
-
-instance ( Extendss InstanceCreateInfo es
-         , PeekChain es ) => FromCStruct (InstanceCreateInfo es) where
-  peekCStruct p = do
-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
-    next <- peekChain (castPtr pNext)
-    flags <- peek @InstanceCreateFlags ((p `plusPtr` 16 :: Ptr InstanceCreateFlags))
-    pApplicationInfo <- peek @(Ptr ApplicationInfo) ((p `plusPtr` 24 :: Ptr (Ptr ApplicationInfo)))
-    pApplicationInfo' <- maybePeek (\j -> peekCStruct @ApplicationInfo (j)) pApplicationInfo
-    enabledLayerCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
-    ppEnabledLayerNames <- peek @(Ptr (Ptr CChar)) ((p `plusPtr` 40 :: Ptr (Ptr (Ptr CChar))))
-    ppEnabledLayerNames' <- generateM (fromIntegral enabledLayerCount) (\i -> packCString =<< peek ((ppEnabledLayerNames `advancePtrBytes` (8 * (i)) :: Ptr (Ptr CChar))))
-    enabledExtensionCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
-    ppEnabledExtensionNames <- peek @(Ptr (Ptr CChar)) ((p `plusPtr` 56 :: Ptr (Ptr (Ptr CChar))))
-    ppEnabledExtensionNames' <- generateM (fromIntegral enabledExtensionCount) (\i -> packCString =<< peek ((ppEnabledExtensionNames `advancePtrBytes` (8 * (i)) :: Ptr (Ptr CChar))))
-    pure $ InstanceCreateInfo
-             next
-             flags
-             pApplicationInfo'
-             ppEnabledLayerNames'
-             ppEnabledExtensionNames'
-
-instance es ~ '[] => Zero (InstanceCreateInfo es) where
-  zero = InstanceCreateInfo
-           ()
-           zero
-           Nothing
-           mempty
-           mempty
-
-
--- | VkQueueFamilyProperties - Structure providing information about a queue
--- family
---
--- = Description
---
--- The value returned in @minImageTransferGranularity@ has a unit of
--- compressed texel blocks for images having a block-compressed format, and
--- a unit of texels otherwise.
---
--- Possible values of @minImageTransferGranularity@ are:
---
--- -   (0,0,0) specifies that only whole mip levels /must/ be transferred
---     using the image transfer operations on the corresponding queues. In
---     this case, the following restrictions apply to all offset and extent
---     parameters of image transfer operations:
---
---     -   The @x@, @y@, and @z@ members of a
---         'Vulkan.Core10.FundamentalTypes.Offset3D' parameter /must/
---         always be zero.
---
---     -   The @width@, @height@, and @depth@ members of a
---         'Vulkan.Core10.FundamentalTypes.Extent3D' parameter /must/
---         always match the width, height, and depth of the image
---         subresource corresponding to the parameter, respectively.
---
--- -   (Ax, Ay, Az) where Ax, Ay, and Az are all integer powers of two. In
---     this case the following restrictions apply to all image transfer
---     operations:
---
---     -   @x@, @y@, and @z@ of a 'Vulkan.Core10.FundamentalTypes.Offset3D'
---         parameter /must/ be integer multiples of Ax, Ay, and Az,
---         respectively.
---
---     -   @width@ of a 'Vulkan.Core10.FundamentalTypes.Extent3D' parameter
---         /must/ be an integer multiple of Ax, or else @x@ + @width@
---         /must/ equal the width of the image subresource corresponding to
---         the parameter.
---
---     -   @height@ of a 'Vulkan.Core10.FundamentalTypes.Extent3D'
---         parameter /must/ be an integer multiple of Ay, or else @y@ +
---         @height@ /must/ equal the height of the image subresource
---         corresponding to the parameter.
---
---     -   @depth@ of a 'Vulkan.Core10.FundamentalTypes.Extent3D' parameter
---         /must/ be an integer multiple of Az, or else @z@ + @depth@
---         /must/ equal the depth of the image subresource corresponding to
---         the parameter.
---
---     -   If the format of the image corresponding to the parameters is
---         one of the block-compressed formats then for the purposes of the
---         above calculations the granularity /must/ be scaled up by the
---         compressed texel block dimensions.
---
--- Queues supporting graphics and\/or compute operations /must/ report
--- (1,1,1) in @minImageTransferGranularity@, meaning that there are no
--- additional restrictions on the granularity of image transfer operations
--- for these queues. Other queues supporting image transfer operations are
--- only /required/ to support whole mip level transfers, thus
--- @minImageTransferGranularity@ for queues belonging to such queue
--- families /may/ be (0,0,0).
---
--- The
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device Device Memory>
--- section describes memory properties queried from the physical device.
---
--- For physical device feature queries see the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features Features>
--- chapter.
---
--- = 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',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2',
--- 'Vulkan.Core10.Enums.QueueFlagBits.QueueFlags',
--- 'getPhysicalDeviceQueueFamilyProperties'
-data QueueFamilyProperties = QueueFamilyProperties
-  { -- | @queueFlags@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.QueueFlagBits.QueueFlagBits' indicating
-    -- capabilities of the queues in this queue family.
-    queueFlags :: QueueFlags
-  , -- | @queueCount@ is the unsigned integer count of queues in this queue
-    -- family. Each queue family /must/ support at least one queue.
-    queueCount :: Word32
-  , -- | @timestampValidBits@ is the unsigned integer count of meaningful bits in
-    -- the timestamps written via
-    -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'
-    -- or 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp'. The valid
-    -- range for the count is 36 to 64 bits, or a value of 0, indicating no
-    -- support for timestamps. Bits outside the valid range are guaranteed to
-    -- be zeros.
-    timestampValidBits :: Word32
-  , -- | @minImageTransferGranularity@ is the minimum granularity supported for
-    -- image transfer operations on the queues in this queue family.
-    minImageTransferGranularity :: Extent3D
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (QueueFamilyProperties)
-#endif
-deriving instance Show QueueFamilyProperties
-
-instance ToCStruct QueueFamilyProperties where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p QueueFamilyProperties{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr QueueFlags)) (queueFlags)
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (queueCount)
-    poke ((p `plusPtr` 8 :: Ptr Word32)) (timestampValidBits)
-    poke ((p `plusPtr` 12 :: Ptr Extent3D)) (minImageTransferGranularity)
-    f
-  cStructSize = 24
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 12 :: Ptr Extent3D)) (zero)
-    f
-
-instance FromCStruct QueueFamilyProperties where
-  peekCStruct p = do
-    queueFlags <- peek @QueueFlags ((p `plusPtr` 0 :: Ptr QueueFlags))
-    queueCount <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
-    timestampValidBits <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
-    minImageTransferGranularity <- peekCStruct @Extent3D ((p `plusPtr` 12 :: Ptr Extent3D))
-    pure $ QueueFamilyProperties
-             queueFlags
-             queueCount
-             timestampValidBits
-             minImageTransferGranularity
-
-instance Storable QueueFamilyProperties where
-  sizeOf ~_ = 24
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero QueueFamilyProperties where
-  zero = QueueFamilyProperties
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkPhysicalDeviceMemoryProperties - Structure specifying physical device
--- memory properties
---
--- = Description
---
--- The 'PhysicalDeviceMemoryProperties' structure describes a number of
--- /memory heaps/ as well as a number of /memory types/ that /can/ be used
--- to access memory allocated in those heaps. Each heap describes a memory
--- resource of a particular size, and each memory type describes a set of
--- memory properties (e.g. host cached vs. uncached) that /can/ be used
--- with a given memory heap. Allocations using a particular memory type
--- will consume resources from the heap indicated by that memory type’s
--- heap index. More than one memory type /may/ share each heap, and the
--- heaps and memory types provide a mechanism to advertise an accurate size
--- of the physical memory resources while allowing the memory to be used
--- with a variety of different properties.
---
--- The number of memory heaps is given by @memoryHeapCount@ and is less
--- than or equal to 'Vulkan.Core10.APIConstants.MAX_MEMORY_HEAPS'. Each
--- heap is described by an element of the @memoryHeaps@ array as a
--- 'MemoryHeap' structure. The number of memory types available across all
--- memory heaps is given by @memoryTypeCount@ and is less than or equal to
--- 'Vulkan.Core10.APIConstants.MAX_MEMORY_TYPES'. Each memory type is
--- described by an element of the @memoryTypes@ array as a 'MemoryType'
--- structure.
---
--- At least one heap /must/ include
--- 'Vulkan.Core10.Enums.MemoryHeapFlagBits.MEMORY_HEAP_DEVICE_LOCAL_BIT' in
--- 'MemoryHeap'::@flags@. If there are multiple heaps that all have similar
--- performance characteristics, they /may/ all include
--- 'Vulkan.Core10.Enums.MemoryHeapFlagBits.MEMORY_HEAP_DEVICE_LOCAL_BIT'.
--- In a unified memory architecture (UMA) system there is often only a
--- single memory heap which is considered to be equally “local” to the host
--- and to the device, and such an implementation /must/ advertise the heap
--- as device-local.
---
--- Each memory type returned by 'getPhysicalDeviceMemoryProperties' /must/
--- have its @propertyFlags@ set to one of the following values:
---
--- -   0
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_PROTECTED_BIT'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_PROTECTED_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD'
---
--- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
---     |
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV'
---
--- There /must/ be at least one memory type with both the
--- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
--- and
--- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
--- bits set in its @propertyFlags@. There /must/ be at least one memory
--- type with the
--- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
--- bit set in its @propertyFlags@. If the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceCoherentMemory deviceCoherentMemory>
--- feature is enabled, there /must/ be at least one memory type with the
--- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
--- bit set in its @propertyFlags@.
---
--- For each pair of elements __X__ and __Y__ returned in @memoryTypes@,
--- __X__ /must/ be placed at a lower index position than __Y__ if:
---
--- -   the set of bit flags returned in the @propertyFlags@ member of __X__
---     is a strict subset of the set of bit flags returned in the
---     @propertyFlags@ member of __Y__; or
---
--- -   the @propertyFlags@ members of __X__ and __Y__ are equal, and __X__
---     belongs to a memory heap with greater performance (as determined in
---     an implementation-specific manner) ; or
---
--- -   the @propertyFlags@ members of __Y__ includes
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
---     or
---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD'
---     and __X__ does not
---
--- Note
---
--- There is no ordering requirement between __X__ and __Y__ elements for
--- the case their @propertyFlags@ members are not in a subset relation.
--- That potentially allows more than one possible way to order the same set
--- of memory types. Notice that the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-bitmask-list list of all allowed memory property flag combinations>
--- is written in a valid order. But if instead
--- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
--- was before
--- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
--- |
--- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT',
--- the list would still be in a valid order.
---
--- There may be a performance penalty for using device coherent or uncached
--- device memory types, and using these accidentally is undesirable. In
--- order to avoid this, memory types with these properties always appear at
--- the end of the list; but are subject to the same rules otherwise.
---
--- This ordering requirement enables applications to use a simple search
--- loop to select the desired memory type along the lines of:
---
--- > // Find a memory in `memoryTypeBitsRequirement` that includes all of `requiredProperties`
--- > int32_t findProperties(const VkPhysicalDeviceMemoryProperties* pMemoryProperties,
--- >                        uint32_t memoryTypeBitsRequirement,
--- >                        VkMemoryPropertyFlags requiredProperties) {
--- >     const uint32_t memoryCount = pMemoryProperties->memoryTypeCount;
--- >     for (uint32_t memoryIndex = 0; memoryIndex < memoryCount; ++memoryIndex) {
--- >         const uint32_t memoryTypeBits = (1 << memoryIndex);
--- >         const bool isRequiredMemoryType = memoryTypeBitsRequirement & memoryTypeBits;
--- >
--- >         const VkMemoryPropertyFlags properties =
--- >             pMemoryProperties->memoryTypes[memoryIndex].propertyFlags;
--- >         const bool hasRequiredProperties =
--- >             (properties & requiredProperties) == requiredProperties;
--- >
--- >         if (isRequiredMemoryType && hasRequiredProperties)
--- >             return static_cast<int32_t>(memoryIndex);
--- >     }
--- >
--- >     // failed to find memory type
--- >     return -1;
--- > }
--- >
--- > // Try to find an optimal memory type, or if it does not exist try fallback memory type
--- > // `device` is the VkDevice
--- > // `image` is the VkImage that requires memory to be bound
--- > // `memoryProperties` properties as returned by vkGetPhysicalDeviceMemoryProperties
--- > // `requiredProperties` are the property flags that must be present
--- > // `optimalProperties` are the property flags that are preferred by the application
--- > VkMemoryRequirements memoryRequirements;
--- > vkGetImageMemoryRequirements(device, image, &memoryRequirements);
--- > int32_t memoryType =
--- >     findProperties(&memoryProperties, memoryRequirements.memoryTypeBits, optimalProperties);
--- > if (memoryType == -1) // not found; try fallback properties
--- >     memoryType =
--- >         findProperties(&memoryProperties, memoryRequirements.memoryTypeBits, requiredProperties);
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'MemoryHeap', 'MemoryType',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceMemoryProperties2',
--- 'getPhysicalDeviceMemoryProperties'
-data PhysicalDeviceMemoryProperties = PhysicalDeviceMemoryProperties
-  { -- | @memoryTypeCount@ is the number of valid elements in the @memoryTypes@
-    -- array.
-    memoryTypeCount :: Word32
-  , -- | @memoryTypes@ is an array of
-    -- 'Vulkan.Core10.APIConstants.MAX_MEMORY_TYPES' 'MemoryType' structures
-    -- describing the /memory types/ that /can/ be used to access memory
-    -- allocated from the heaps specified by @memoryHeaps@.
-    memoryTypes :: Vector MemoryType
-  , -- | @memoryHeapCount@ is the number of valid elements in the @memoryHeaps@
-    -- array.
-    memoryHeapCount :: Word32
-  , -- | @memoryHeaps@ is an array of
-    -- 'Vulkan.Core10.APIConstants.MAX_MEMORY_HEAPS' 'MemoryHeap' structures
-    -- describing the /memory heaps/ from which memory /can/ be allocated.
-    memoryHeaps :: Vector MemoryHeap
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceMemoryProperties)
-#endif
-deriving instance Show PhysicalDeviceMemoryProperties
-
-instance ToCStruct PhysicalDeviceMemoryProperties where
-  withCStruct x f = allocaBytes 520 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceMemoryProperties{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (memoryTypeCount)
-    unless ((Data.Vector.length $ (memoryTypes)) <= MAX_MEMORY_TYPES) $
-      throwIO $ IOError Nothing InvalidArgument "" "memoryTypes is too long, a maximum of MAX_MEMORY_TYPES elements are allowed" Nothing Nothing
-    Data.Vector.imapM_ (\i e -> poke ((lowerArrayPtr ((p `plusPtr` 4 :: Ptr (FixedArray MAX_MEMORY_TYPES MemoryType)))) `plusPtr` (8 * (i)) :: Ptr MemoryType) (e)) (memoryTypes)
-    poke ((p `plusPtr` 260 :: Ptr Word32)) (memoryHeapCount)
-    unless ((Data.Vector.length $ (memoryHeaps)) <= MAX_MEMORY_HEAPS) $
-      throwIO $ IOError Nothing InvalidArgument "" "memoryHeaps is too long, a maximum of MAX_MEMORY_HEAPS elements are allowed" Nothing Nothing
-    Data.Vector.imapM_ (\i e -> poke ((lowerArrayPtr ((p `plusPtr` 264 :: Ptr (FixedArray MAX_MEMORY_HEAPS MemoryHeap)))) `plusPtr` (16 * (i)) :: Ptr MemoryHeap) (e)) (memoryHeaps)
-    f
-  cStructSize = 520
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 260 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct PhysicalDeviceMemoryProperties where
-  peekCStruct p = do
-    memoryTypeCount <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
-    memoryTypes <- generateM (MAX_MEMORY_TYPES) (\i -> peekCStruct @MemoryType (((lowerArrayPtr @MemoryType ((p `plusPtr` 4 :: Ptr (FixedArray MAX_MEMORY_TYPES MemoryType)))) `advancePtrBytes` (8 * (i)) :: Ptr MemoryType)))
-    memoryHeapCount <- peek @Word32 ((p `plusPtr` 260 :: Ptr Word32))
-    memoryHeaps <- generateM (MAX_MEMORY_HEAPS) (\i -> peekCStruct @MemoryHeap (((lowerArrayPtr @MemoryHeap ((p `plusPtr` 264 :: Ptr (FixedArray MAX_MEMORY_HEAPS MemoryHeap)))) `advancePtrBytes` (16 * (i)) :: Ptr MemoryHeap)))
-    pure $ PhysicalDeviceMemoryProperties
-             memoryTypeCount memoryTypes memoryHeapCount memoryHeaps
-
-instance Storable PhysicalDeviceMemoryProperties where
-  sizeOf ~_ = 520
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PhysicalDeviceMemoryProperties where
-  zero = PhysicalDeviceMemoryProperties
-           zero
-           mempty
-           zero
-           mempty
-
-
--- | VkMemoryType - Structure specifying memory type
---
--- = 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.MemoryPropertyFlagBits.MemoryPropertyFlags',
--- 'PhysicalDeviceMemoryProperties'
-data MemoryType = MemoryType
-  { -- | @propertyFlags@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MemoryPropertyFlagBits' of
-    -- properties for this memory type.
-    propertyFlags :: MemoryPropertyFlags
-  , -- | @heapIndex@ describes which memory heap this memory type corresponds to,
-    -- and /must/ be less than @memoryHeapCount@ from the
-    -- 'PhysicalDeviceMemoryProperties' structure.
-    heapIndex :: Word32
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (MemoryType)
-#endif
-deriving instance Show MemoryType
-
-instance ToCStruct MemoryType where
-  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p MemoryType{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr MemoryPropertyFlags)) (propertyFlags)
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (heapIndex)
-    f
-  cStructSize = 8
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct MemoryType where
-  peekCStruct p = do
-    propertyFlags <- peek @MemoryPropertyFlags ((p `plusPtr` 0 :: Ptr MemoryPropertyFlags))
-    heapIndex <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
-    pure $ MemoryType
-             propertyFlags heapIndex
-
-instance Storable MemoryType where
-  sizeOf ~_ = 8
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero MemoryType where
-  zero = MemoryType
-           zero
-           zero
-
-
--- | VkMemoryHeap - Structure specifying a memory heap
---
--- = 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.Enums.MemoryHeapFlagBits.MemoryHeapFlags',
--- 'PhysicalDeviceMemoryProperties'
-data MemoryHeap = MemoryHeap
-  { -- | @size@ is the total memory size in bytes in the heap.
-    size :: DeviceSize
-  , -- | @flags@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.MemoryHeapFlagBits.MemoryHeapFlagBits' specifying
-    -- attribute flags for the heap.
-    flags :: MemoryHeapFlags
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (MemoryHeap)
-#endif
-deriving instance Show MemoryHeap
-
-instance ToCStruct MemoryHeap where
-  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p MemoryHeap{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (size)
-    poke ((p `plusPtr` 8 :: Ptr MemoryHeapFlags)) (flags)
-    f
-  cStructSize = 16
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)
-    f
-
-instance FromCStruct MemoryHeap where
-  peekCStruct p = do
-    size <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))
-    flags <- peek @MemoryHeapFlags ((p `plusPtr` 8 :: Ptr MemoryHeapFlags))
-    pure $ MemoryHeap
-             size flags
-
-instance Storable MemoryHeap where
-  sizeOf ~_ = 16
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero MemoryHeap where
-  zero = MemoryHeap
-           zero
-           zero
-
-
--- | VkFormatProperties - Structure specifying image format properties
---
--- = Description
---
--- Note
---
--- If no format feature flags are supported, the format itself is not
--- supported, and images of that format cannot be created.
---
--- If @format@ is a block-compressed format, then @bufferFeatures@ /must/
--- not support any features for the format.
---
--- If @format@ is not a multi-plane format then @linearTilingFeatures@ and
--- @optimalTilingFeatures@ /must/ not contain
--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DISJOINT_BIT'.
---
--- = 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.FormatFeatureFlagBits.FormatFeatureFlags',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2',
--- 'getPhysicalDeviceFormatProperties'
-data FormatProperties = FormatProperties
-  { -- | @linearTilingFeatures@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits'
-    -- specifying features supported by images created with a @tiling@
-    -- parameter of 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR'.
-    linearTilingFeatures :: FormatFeatureFlags
-  , -- | @optimalTilingFeatures@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits'
-    -- specifying features supported by images created with a @tiling@
-    -- parameter of 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'.
-    optimalTilingFeatures :: FormatFeatureFlags
-  , -- | @bufferFeatures@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits'
-    -- specifying features supported by buffers.
-    bufferFeatures :: FormatFeatureFlags
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (FormatProperties)
-#endif
-deriving instance Show FormatProperties
-
-instance ToCStruct FormatProperties where
-  withCStruct x f = allocaBytes 12 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p FormatProperties{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr FormatFeatureFlags)) (linearTilingFeatures)
-    poke ((p `plusPtr` 4 :: Ptr FormatFeatureFlags)) (optimalTilingFeatures)
-    poke ((p `plusPtr` 8 :: Ptr FormatFeatureFlags)) (bufferFeatures)
-    f
-  cStructSize = 12
-  cStructAlignment = 4
-  pokeZeroCStruct _ f = f
-
-instance FromCStruct FormatProperties where
-  peekCStruct p = do
-    linearTilingFeatures <- peek @FormatFeatureFlags ((p `plusPtr` 0 :: Ptr FormatFeatureFlags))
-    optimalTilingFeatures <- peek @FormatFeatureFlags ((p `plusPtr` 4 :: Ptr FormatFeatureFlags))
-    bufferFeatures <- peek @FormatFeatureFlags ((p `plusPtr` 8 :: Ptr FormatFeatureFlags))
-    pure $ FormatProperties
-             linearTilingFeatures optimalTilingFeatures bufferFeatures
-
-instance Storable FormatProperties where
-  sizeOf ~_ = 12
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero FormatProperties where
-  zero = FormatProperties
-           zero
-           zero
-           zero
-
-
--- | VkImageFormatProperties - Structure specifying an image format
--- properties
---
--- = Members
---
--- -   @maxExtent@ are the maximum image dimensions. See the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extentperimagetype Allowed Extent Values>
---     section below for how these values are constrained by @type@.
---
--- -   @maxMipLevels@ is the maximum number of mipmap levels.
---     @maxMipLevels@ /must/ be equal to the number of levels in the
---     complete mipmap chain based on the @maxExtent.width@,
---     @maxExtent.height@, and @maxExtent.depth@, except when one of the
---     following conditions is true, in which case it /may/ instead be @1@:
---
---     -   'getPhysicalDeviceImageFormatProperties'::@tiling@ was
---         'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR'
---
---     -   'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'::@tiling@
---         was
---         'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'
---
---     -   the
---         'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'::@pNext@
---         chain included a
---         'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalImageFormatInfo'
---         structure with a handle type included in the @handleTypes@
---         member for which mipmap image support is not required
---
---     -   image @format@ is one 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>
---
---     -   @flags@ contains
---         'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
---
--- -   @maxArrayLayers@ is the maximum number of array layers.
---     @maxArrayLayers@ /must/ be no less than
---     'PhysicalDeviceLimits'::@maxImageArrayLayers@, except when one of
---     the following conditions is true, in which case it /may/ instead be
---     @1@:
---
---     -   @tiling@ is
---         'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR'
---
---     -   @tiling@ is
---         'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL' and
---         @type@ is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D'
---
---     -   @format@ is one 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>
---
--- -   If @tiling@ is
---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',
---     then @maxArrayLayers@ /must/ not be 0.
---
--- -   @sampleCounts@ is a bitmask of
---     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits'
---     specifying all the supported sample counts for this image as
---     described
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-supported-sample-counts below>.
---
--- -   @maxResourceSize@ is an upper bound on the total image size in
---     bytes, inclusive of all image subresources. Implementations /may/
---     have an address space limit on total size of a resource, which is
---     advertised by this property. @maxResourceSize@ /must/ be at least
---     231.
---
--- = Description
---
--- Note
---
--- There is no mechanism to query the size of an image before creating it,
--- to compare that size against @maxResourceSize@. If an application
--- attempts to create an image that exceeds this limit, the creation will
--- fail and 'Vulkan.Core10.Image.createImage' will return
--- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'. While the
--- advertised limit /must/ be at least 231, it /may/ not be possible to
--- create an image that approaches that size, particularly for
--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D'.
---
--- If the combination of parameters to
--- 'getPhysicalDeviceImageFormatProperties' is not supported by the
--- implementation for use in 'Vulkan.Core10.Image.createImage', then all
--- members of 'ImageFormatProperties' will be filled with zero.
---
--- Note
---
--- Filling 'ImageFormatProperties' with zero for unsupported formats is an
--- exception to the usual rule that output structures have undefined
--- contents on error. This exception was unintentional, but is preserved
--- for backwards compatibility.
---
--- = 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',
--- 'Vulkan.Extensions.VK_NV_external_memory_capabilities.ExternalImageFormatPropertiesNV',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2',
--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlags',
--- 'getPhysicalDeviceImageFormatProperties'
-data ImageFormatProperties = ImageFormatProperties
-  { -- No documentation found for Nested "VkImageFormatProperties" "maxExtent"
-    maxExtent :: Extent3D
-  , -- No documentation found for Nested "VkImageFormatProperties" "maxMipLevels"
-    maxMipLevels :: Word32
-  , -- No documentation found for Nested "VkImageFormatProperties" "maxArrayLayers"
-    maxArrayLayers :: Word32
-  , -- No documentation found for Nested "VkImageFormatProperties" "sampleCounts"
-    sampleCounts :: SampleCountFlags
-  , -- No documentation found for Nested "VkImageFormatProperties" "maxResourceSize"
-    maxResourceSize :: DeviceSize
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (ImageFormatProperties)
-#endif
-deriving instance Show ImageFormatProperties
-
-instance ToCStruct ImageFormatProperties where
-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p ImageFormatProperties{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Extent3D)) (maxExtent)
-    poke ((p `plusPtr` 12 :: Ptr Word32)) (maxMipLevels)
-    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxArrayLayers)
-    poke ((p `plusPtr` 20 :: Ptr SampleCountFlags)) (sampleCounts)
-    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (maxResourceSize)
-    f
-  cStructSize = 32
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr Extent3D)) (zero)
-    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (zero)
-    f
-
-instance FromCStruct ImageFormatProperties where
-  peekCStruct p = do
-    maxExtent <- peekCStruct @Extent3D ((p `plusPtr` 0 :: Ptr Extent3D))
-    maxMipLevels <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
-    maxArrayLayers <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
-    sampleCounts <- peek @SampleCountFlags ((p `plusPtr` 20 :: Ptr SampleCountFlags))
-    maxResourceSize <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))
-    pure $ ImageFormatProperties
-             maxExtent maxMipLevels maxArrayLayers sampleCounts maxResourceSize
-
-instance Storable ImageFormatProperties where
-  sizeOf ~_ = 32
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero ImageFormatProperties where
-  zero = ImageFormatProperties
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkPhysicalDeviceFeatures - Structure describing the fine-grained
--- features that can be supported by an implementation
---
--- = Members
---
--- This structure describes the following features:
---
--- = 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.Device.DeviceCreateInfo',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
--- 'getPhysicalDeviceFeatures'
-data PhysicalDeviceFeatures = PhysicalDeviceFeatures
-  { -- | #features-robustBufferAccess# @robustBufferAccess@ specifies that
-    -- accesses to buffers are bounds-checked against the range of the buffer
-    -- descriptor (as determined by
-    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo'::@range@,
-    -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo'::@range@, or the size of
-    -- the buffer). Out of bounds accesses /must/ not cause application
-    -- termination, and the effects of shader loads, stores, and atomics /must/
-    -- conform to an implementation-dependent behavior as described below.
-    --
-    -- -   A buffer access is considered to be out of bounds if any of the
-    --     following are true:
-    --
-    --     -   The pointer was formed by @OpImageTexelPointer@ and the
-    --         coordinate is less than zero or greater than or equal to the
-    --         number of whole elements in the bound range.
-    --
-    --     -   The pointer was not formed by @OpImageTexelPointer@ and the
-    --         object pointed to is not wholly contained within the bound
-    --         range. This includes accesses performed via /variable pointers/
-    --         where the buffer descriptor being accessed cannot be statically
-    --         determined. Uninitialized pointers and pointers equal to
-    --         @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-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
-    --         end of the structure is out of bounds, then all members of the
-    --         structure are considered out of bounds even if the members at
-    --         the end are not statically used.
-    --
-    --     -   If
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
-    --         is not enabled and any buffer access is determined to be out of
-    --         bounds, then any other access of the same type (load, store, or
-    --         atomic) to the same buffer that accesses an address less than 16
-    --         bytes away from the out of bounds address /may/ also be
-    --         considered out of bounds.
-    --
-    --     -   If the access is a load that reads from the same memory
-    --         locations as a prior store in the same shader invocation, with
-    --         no other intervening accesses to the same memory locations in
-    --         that shader invocation, then the result of the load /may/ be the
-    --         value stored by the store instruction, even if the access is out
-    --         of bounds. If the load is @Volatile@, then an out of bounds load
-    --         /must/ return the appropriate out of bounds value.
-    --
-    -- -   Accesses to descriptors written with a
-    --     'Vulkan.Core10.APIConstants.NULL_HANDLE' resource or view are not
-    --     considered to be out of bounds. Instead, each type of descriptor
-    --     access defines a specific behavior for accesses to a null
-    --     descriptor.
-    --
-    -- -   Out-of-bounds buffer loads will return any of the following values:
-    --
-    --     -   If the access is to a uniform buffer and
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
-    --         is enabled, loads of offsets between the end of the descriptor
-    --         range and the end of the descriptor range rounded up to a
-    --         multiple of
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>
-    --         bytes /must/ return either zero values or the contents of the
-    --         memory at the offset being loaded. Loads of offsets past the
-    --         descriptor range rounded up to a multiple of
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>
-    --         bytes /must/ return zero values.
-    --
-    --     -   If the access is to a storage buffer and
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
-    --         is enabled, loads of offsets between the end of the descriptor
-    --         range and the end of the descriptor range rounded up to a
-    --         multiple of
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>
-    --         bytes /must/ return either zero values or the contents of the
-    --         memory at the offset being loaded. Loads of offsets past the
-    --         descriptor range rounded up to a multiple of
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>
-    --         bytes /must/ return zero values. Similarly, stores to addresses
-    --         between the end of the descriptor range and the end of the
-    --         descriptor range rounded up to a multiple of
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>
-    --         bytes /may/ be discarded.
-    --
-    --     -   Non-atomic accesses to storage buffers that are a multiple of 32
-    --         bits /may/ be decomposed into 32-bit accesses that are
-    --         individually bounds-checked.
-    --
-    --     -   If the access is to an index buffer and
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
-    --         is enabled, zero values /must/ be returned.
-    --
-    --     -   If the access is to a uniform texel buffer or storage texel
-    --         buffer and
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
-    --         is enabled, zero values /must/ be returned, and then
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>
-    --         is applied based on the buffer view’s format.
-    --
-    --     -   Values from anywhere within the memory range(s) bound to the
-    --         buffer (possibly including bytes of memory past the end of the
-    --         buffer, up to the end of the bound range).
-    --
-    --     -   Zero values, or (0,0,0,x) vectors for vector reads where x is a
-    --         valid value represented in the type of the vector components and
-    --         /may/ be any of:
-    --
-    --         -   0, 1, or the maximum representable positive integer value,
-    --             for signed or unsigned integer components
-    --
-    --         -   0.0 or 1.0, for floating-point components
-    --
-    -- -   Out-of-bounds writes /may/ modify values within the memory range(s)
-    --     bound to the buffer, but /must/ not modify any other memory.
-    --
-    --     -   If
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
-    --         is enabled, out of bounds writes /must/ not modify any memory.
-    --
-    -- -   Out-of-bounds atomics /may/ modify values within the memory range(s)
-    --     bound to the buffer, but /must/ not modify any other memory, and
-    --     return an undefined value.
-    --
-    --     -   If
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
-    --         is enabled, out of bounds atomics /must/ not modify any memory,
-    --         and return an undefined value.
-    --
-    -- -   If
-    --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
-    --     is disabled, vertex input attributes are considered out of bounds if
-    --     the offset of the attribute in the bound vertex buffer range plus
-    --     the size of the attribute is greater than either:
-    --
-    --     -   @vertexBufferRangeSize@, if @bindingStride@ == 0; or
-    --
-    --     -   (@vertexBufferRangeSize@ - (@vertexBufferRangeSize@ %
-    --         @bindingStride@))
-    --
-    --         where @vertexBufferRangeSize@ is the byte size of the memory
-    --         range bound to the vertex buffer binding and @bindingStride@ is
-    --         the byte stride of the corresponding vertex input binding.
-    --         Further, if any vertex input attribute using a specific vertex
-    --         input binding is out of bounds, then all vertex input attributes
-    --         using that vertex input binding for that vertex shader
-    --         invocation are considered out of bounds.
-    --
-    --     -   If a vertex input attribute is out of bounds, it will be
-    --         assigned one of the following values:
-    --
-    --         -   Values from anywhere within the memory range(s) bound to the
-    --             buffer, converted according to the format of the attribute.
-    --
-    --         -   Zero values, format converted according to the format of the
-    --             attribute.
-    --
-    --         -   Zero values, or (0,0,0,x) vectors, as described above.
-    --
-    -- -   If
-    --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
-    --     is enabled, vertex input attributes are considered out of bounds if
-    --     the offset of the attribute in the bound vertex buffer range plus
-    --     the size of the attribute is greater than the byte size of the
-    --     memory range bound to the vertex buffer binding.
-    --
-    --     -   If a vertex input attribute is out of bounds, the
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input-extraction raw data>
-    --         extracted are zero values, 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)>.
-    --
-    -- -   If @robustBufferAccess@ is not enabled, applications /must/ not
-    --     perform out of bounds accesses except under the conditions enabled
-    --     by the
-    --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustness pipelineRobustness>
-    --     feature .
-    robustBufferAccess :: Bool
-  , -- | #features-fullDrawIndexUint32# @fullDrawIndexUint32@ specifies the full
-    -- 32-bit range of indices is supported for indexed draw calls when using a
-    -- 'Vulkan.Core10.Enums.IndexType.IndexType' of
-    -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32'.
-    -- @maxDrawIndexedIndexValue@ is the maximum index value that /may/ be used
-    -- (aside from the primitive restart index, which is always 232-1 when the
-    -- 'Vulkan.Core10.Enums.IndexType.IndexType' is
-    -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32'). If this feature is
-    -- supported, @maxDrawIndexedIndexValue@ /must/ be 232-1; otherwise it
-    -- /must/ be no smaller than 224-1. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDrawIndexedIndexValue maxDrawIndexedIndexValue>.
-    fullDrawIndexUint32 :: Bool
-  , -- | #features-imageCubeArray# @imageCubeArray@ specifies whether image views
-    -- with a 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
-    -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' /can/ be
-    -- created, and that the corresponding @SampledCubeArray@ and
-    -- @ImageCubeArray@ SPIR-V capabilities /can/ be used in shader code.
-    imageCubeArray :: Bool
-  , -- | #features-independentBlend# @independentBlend@ specifies whether the
-    -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState' settings are
-    -- controlled independently per-attachment. If this feature is not enabled,
-    -- the 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState' settings
-    -- for all color attachments /must/ be identical. Otherwise, a different
-    -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState' /can/ be
-    -- provided for each bound color attachment.
-    independentBlend :: Bool
-  , -- | #features-geometryShader# @geometryShader@ specifies whether geometry
-    -- shaders are supported. If this feature is not enabled, the
-    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' and
-    -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
-    -- enum values /must/ not be used. This also specifies whether shader
-    -- modules /can/ declare the @Geometry@ capability.
-    geometryShader :: Bool
-  , -- | #features-tessellationShader# @tessellationShader@ specifies whether
-    -- tessellation control and evaluation shaders are supported. If this
-    -- feature is not enabled, the
-    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',
-    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',
-    -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',
-    -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',
-    -- and
-    -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO'
-    -- enum values /must/ not be used. This also specifies whether shader
-    -- modules /can/ declare the @Tessellation@ capability.
-    tessellationShader :: Bool
-  , -- | #features-sampleRateShading# @sampleRateShading@ specifies whether
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>
-    -- and multisample interpolation are supported. If this feature is not
-    -- enabled, the @sampleShadingEnable@ member of the
-    -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo' structure
-    -- /must/ be set to 'Vulkan.Core10.FundamentalTypes.FALSE' and the
-    -- @minSampleShading@ member is ignored. This also specifies whether shader
-    -- modules /can/ declare the @SampleRateShading@ capability.
-    sampleRateShading :: Bool
-  , -- | #features-dualSrcBlend# @dualSrcBlend@ specifies whether blend
-    -- operations which take two sources are supported. If this feature is not
-    -- enabled, the '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', and
-    -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA' enum
-    -- values /must/ not be used as source or destination blending factors. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-dsb>.
-    dualSrcBlend :: Bool
-  , -- | #features-logicOp# @logicOp@ specifies whether logic operations are
-    -- supported. If this feature is not enabled, the @logicOpEnable@ member of
-    -- the 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo' structure
-    -- /must/ be set to 'Vulkan.Core10.FundamentalTypes.FALSE', and the
-    -- @logicOp@ member is ignored.
-    logicOp :: Bool
-  , -- | #features-multiDrawIndirect# @multiDrawIndirect@ specifies whether
-    -- multiple draw indirect is supported. If this feature is not enabled, the
-    -- @drawCount@ parameter to the
-    -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect' and
-    -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect' commands
-    -- /must/ be 0 or 1. The @maxDrawIndirectCount@ member of the
-    -- 'PhysicalDeviceLimits' structure /must/ also be 1 if this feature is not
-    -- supported. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDrawIndirectCount maxDrawIndirectCount>.
-    multiDrawIndirect :: Bool
-  , -- | #features-drawIndirectFirstInstance# @drawIndirectFirstInstance@
-    -- specifies whether indirect drawing calls support the @firstInstance@
-    -- parameter. If this feature is not enabled, the @firstInstance@ member of
-    -- all 'Vulkan.Core10.OtherTypes.DrawIndirectCommand' and
-    -- 'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand' structures that
-    -- are provided to the
-    -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect' and
-    -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect' commands
-    -- /must/ be 0.
-    drawIndirectFirstInstance :: Bool
-  , -- | #features-depthClamp# @depthClamp@ specifies whether depth clamping is
-    -- supported. If this feature is not enabled, the @depthClampEnable@ member
-    -- of the 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'
-    -- structure /must/ be set to 'Vulkan.Core10.FundamentalTypes.FALSE'.
-    -- Otherwise, setting @depthClampEnable@ to
-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' will enable depth clamping.
-    depthClamp :: Bool
-  , -- | #features-depthBiasClamp# @depthBiasClamp@ specifies whether depth bias
-    -- clamping is supported. If this feature is not enabled, the
-    -- @depthBiasClamp@ member of the
-    -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' structure
-    -- /must/ be set to 0.0 unless the
-    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
-    -- state is enabled, and the @depthBiasClamp@ parameter to
-    -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ be set to
-    -- 0.0.
-    depthBiasClamp :: Bool
-  , -- | #features-fillModeNonSolid# @fillModeNonSolid@ specifies whether point
-    -- and wireframe fill modes are supported. If this feature is not enabled,
-    -- the 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT' and
-    -- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE' enum values /must/
-    -- not be used.
-    fillModeNonSolid :: Bool
-  , -- | #features-depthBounds# @depthBounds@ specifies whether depth bounds
-    -- tests are supported. If this feature is not enabled, the
-    -- @depthBoundsTestEnable@ member of the
-    -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' structure
-    -- /must/ be set to 'Vulkan.Core10.FundamentalTypes.FALSE'. When
-    -- @depthBoundsTestEnable@ is set to
-    -- 'Vulkan.Core10.FundamentalTypes.FALSE', the @minDepthBounds@ and
-    -- @maxDepthBounds@ members of the
-    -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' structure
-    -- are ignored.
-    depthBounds :: Bool
-  , -- | #features-wideLines# @wideLines@ specifies whether lines with width
-    -- other than 1.0 are supported. If this feature is not enabled, the
-    -- @lineWidth@ member of the
-    -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' structure
-    -- /must/ be set to 1.0 unless the
-    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
-    -- state is enabled, and the @lineWidth@ parameter to
-    -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ be set to
-    -- 1.0. When this feature is supported, the range and granularity of
-    -- supported line widths are indicated by the @lineWidthRange@ and
-    -- @lineWidthGranularity@ members of the 'PhysicalDeviceLimits' structure,
-    -- respectively.
-    wideLines :: Bool
-  , -- | #features-largePoints# @largePoints@ specifies whether points with size
-    -- greater than 1.0 are supported. If this feature is not enabled, only a
-    -- point size of 1.0 written by a shader is supported. The range and
-    -- granularity of supported point sizes are indicated by the
-    -- @pointSizeRange@ and @pointSizeGranularity@ members of the
-    -- 'PhysicalDeviceLimits' structure, respectively.
-    largePoints :: Bool
-  , -- | #features-alphaToOne# @alphaToOne@ specifies whether the implementation
-    -- is able to replace the alpha value of the fragment shader color output
-    -- in the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>
-    -- fragment operation. If this feature is not enabled, then the
-    -- @alphaToOneEnable@ member of the
-    -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo' structure
-    -- /must/ be set to 'Vulkan.Core10.FundamentalTypes.FALSE'. Otherwise
-    -- setting @alphaToOneEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE' will
-    -- enable alpha-to-one behavior.
-    alphaToOne :: Bool
-  , -- | #features-multiViewport# @multiViewport@ specifies whether more than one
-    -- viewport is supported. If this feature is not enabled:
-    --
-    -- -   The @viewportCount@ and @scissorCount@ members of the
-    --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' structure
-    --     /must/ be set to 1.
-    --
-    -- -   The @firstViewport@ and @viewportCount@ parameters to the
-    --     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' command /must/
-    --     be set to 0 and 1, respectively.
-    --
-    -- -   The @firstScissor@ and @scissorCount@ parameters to the
-    --     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' command /must/
-    --     be set to 0 and 1, respectively.
-    --
-    -- -   The @exclusiveScissorCount@ member of the
-    --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'
-    --     structure /must/ be set to 0 or 1.
-    --
-    -- -   The @firstExclusiveScissor@ and @exclusiveScissorCount@ parameters
-    --     to the
-    --     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
-    --     command /must/ be set to 0 and 1, respectively.
-    multiViewport :: Bool
-  , -- | #features-samplerAnisotropy# @samplerAnisotropy@ specifies whether
-    -- anisotropic filtering is supported. If this feature is not enabled, the
-    -- @anisotropyEnable@ member of the
-    -- 'Vulkan.Core10.Sampler.SamplerCreateInfo' structure /must/ be
-    -- 'Vulkan.Core10.FundamentalTypes.FALSE'.
-    samplerAnisotropy :: Bool
-  , -- | #features-textureCompressionETC2# @textureCompressionETC2@ specifies
-    -- whether all of the ETC2 and EAC compressed texture formats are
-    -- supported. If this feature is enabled, then the
-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT',
-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'
-    -- and
-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
-    -- features /must/ be supported in @optimalTilingFeatures@ for the
-    -- following formats:
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ETC2_R8G8B8_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ETC2_R8G8B8_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_EAC_R11_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_EAC_R11_SNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_EAC_R11G11_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_EAC_R11G11_SNORM_BLOCK'
-    --
-    --     To query for additional properties, or if the feature is not
-    --     enabled, 'getPhysicalDeviceFormatProperties' and
-    --     'getPhysicalDeviceImageFormatProperties' /can/ be used to check for
-    --     supported properties of individual formats as normal.
-    textureCompressionETC2 :: Bool
-  , -- | #features-textureCompressionASTC_LDR# @textureCompressionASTC_LDR@
-    -- specifies whether all of the ASTC LDR compressed texture formats are
-    -- supported. If this feature is enabled, then the
-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT',
-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'
-    -- and
-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
-    -- features /must/ be supported in @optimalTilingFeatures@ for the
-    -- following formats:
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_SRGB_BLOCK'
-    --
-    --     To query for additional properties, or if the feature is not
-    --     enabled, 'getPhysicalDeviceFormatProperties' and
-    --     'getPhysicalDeviceImageFormatProperties' /can/ be used to check for
-    --     supported properties of individual formats as normal.
-    textureCompressionASTC_LDR :: Bool
-  , -- | #features-textureCompressionBC# @textureCompressionBC@ specifies whether
-    -- all of the BC compressed texture formats are supported. If this feature
-    -- is enabled, then the
-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT',
-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'
-    -- and
-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
-    -- features /must/ be supported in @optimalTilingFeatures@ for the
-    -- following formats:
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC1_RGB_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC1_RGB_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC1_RGBA_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC1_RGBA_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC2_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC2_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC3_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC3_SRGB_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC4_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC4_SNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC5_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC5_SNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC6H_UFLOAT_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC6H_SFLOAT_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC7_UNORM_BLOCK'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_BC7_SRGB_BLOCK'
-    --
-    --     To query for additional properties, or if the feature is not
-    --     enabled, 'getPhysicalDeviceFormatProperties' and
-    --     'getPhysicalDeviceImageFormatProperties' /can/ be used to check for
-    --     supported properties of individual formats as normal.
-    textureCompressionBC :: Bool
-  , -- | #features-occlusionQueryPrecise# @occlusionQueryPrecise@ specifies
-    -- whether occlusion queries returning actual sample counts are supported.
-    -- Occlusion queries are created in a 'Vulkan.Core10.Handles.QueryPool' by
-    -- specifying the @queryType@ of
-    -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' in the
-    -- 'Vulkan.Core10.Query.QueryPoolCreateInfo' structure which is passed to
-    -- 'Vulkan.Core10.Query.createQueryPool'. If this feature is enabled,
-    -- queries of this type /can/ enable
-    -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT' in
-    -- the @flags@ parameter to
-    -- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery'. If this feature is
-    -- not supported, the implementation supports only boolean occlusion
-    -- queries. When any samples are passed, boolean queries will return a
-    -- non-zero result value, otherwise a result value of zero is returned.
-    -- When this feature is enabled and
-    -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT' is
-    -- set, occlusion queries will report the actual number of samples passed.
-    occlusionQueryPrecise :: Bool
-  , -- | #features-pipelineStatisticsQuery# @pipelineStatisticsQuery@ specifies
-    -- whether the pipeline statistics queries are supported. If this feature
-    -- is not enabled, queries of type
-    -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' /cannot/
-    -- be created, and none of the
-    -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlagBits'
-    -- bits /can/ be set in the @pipelineStatistics@ member of the
-    -- 'Vulkan.Core10.Query.QueryPoolCreateInfo' structure.
-    pipelineStatisticsQuery :: Bool
-  , -- | #features-vertexPipelineStoresAndAtomics#
-    -- @vertexPipelineStoresAndAtomics@ specifies whether storage buffers and
-    -- images support stores and atomic operations in the vertex, tessellation,
-    -- and geometry shader stages. If this feature is not enabled, all storage
-    -- image, storage texel buffer, and storage buffer variables used by these
-    -- stages in shader modules /must/ be decorated with the @NonWritable@
-    -- decoration (or the @readonly@ memory qualifier in GLSL).
-    vertexPipelineStoresAndAtomics :: Bool
-  , -- | #features-fragmentStoresAndAtomics# @fragmentStoresAndAtomics@ specifies
-    -- whether storage buffers and images support stores and atomic operations
-    -- in the fragment shader stage. If this feature is not enabled, all
-    -- storage image, storage texel buffer, and storage buffer variables used
-    -- by the fragment stage in shader modules /must/ be decorated with the
-    -- @NonWritable@ decoration (or the @readonly@ memory qualifier in GLSL).
-    fragmentStoresAndAtomics :: Bool
-  , -- | #features-shaderTessellationAndGeometryPointSize#
-    -- @shaderTessellationAndGeometryPointSize@ specifies whether the
-    -- @PointSize@ built-in decoration is available in the tessellation
-    -- control, tessellation evaluation, and geometry shader stages. If this
-    -- feature is not enabled, members decorated with the @PointSize@ built-in
-    -- decoration /must/ not be read from or written to and all points written
-    -- from a tessellation or geometry shader will have a size of 1.0. This
-    -- also specifies whether shader modules /can/ declare the
-    -- @TessellationPointSize@ capability for tessellation control and
-    -- evaluation shaders, or if the shader modules /can/ declare the
-    -- @GeometryPointSize@ capability for geometry shaders. An implementation
-    -- supporting this feature /must/ also support one or both of the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
-    -- or
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>
-    -- features.
-    shaderTessellationAndGeometryPointSize :: Bool
-  , -- | #features-shaderImageGatherExtended# @shaderImageGatherExtended@
-    -- specifies whether the extended set of image gather instructions are
-    -- available in shader code. If this feature is not enabled, the
-    -- @OpImage*Gather@ instructions do not support the @Offset@ and
-    -- @ConstOffsets@ operands. This also specifies whether shader modules
-    -- /can/ declare the @ImageGatherExtended@ capability.
-    shaderImageGatherExtended :: Bool
-  , -- | #features-shaderStorageImageExtendedFormats#
-    -- @shaderStorageImageExtendedFormats@ specifies whether all the “storage
-    -- image extended formats” below are supported; if this feature is
-    -- supported, then the
-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_BIT'
-    -- /must/ be supported in @optimalTilingFeatures@ for the following
-    -- formats:
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_SFLOAT'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_B10G11R11_UFLOAT_PACK32'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R16_SFLOAT'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16B16A16_UNORM'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_A2B10G10R10_UNORM_PACK32'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_UNORM'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R8G8_UNORM'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R16_UNORM'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R8_UNORM'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16B16A16_SNORM'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_SNORM'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R8G8_SNORM'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R16_SNORM'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R8_SNORM'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_SINT'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R8G8_SINT'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_A2B10G10R10_UINT_PACK32'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_UINT'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R8G8_UINT'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT'
-    --
-    -- -   'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT'
-    --
-    --     Note
-    --
-    --     @shaderStorageImageExtendedFormats@ feature only adds a guarantee of
-    --     format support, which is specified for the whole physical device.
-    --     Therefore enabling or disabling the feature via
-    --     'Vulkan.Core10.Device.createDevice' has no practical effect.
-    --
-    --     To query for additional properties, or if the feature is not
-    --     supported, 'getPhysicalDeviceFormatProperties' and
-    --     'getPhysicalDeviceImageFormatProperties' /can/ be used to check for
-    --     supported properties of individual formats, as usual rules allow.
-    --
-    --     'Vulkan.Core10.Enums.Format.FORMAT_R32G32_UINT',
-    --     'Vulkan.Core10.Enums.Format.FORMAT_R32G32_SINT', and
-    --     'Vulkan.Core10.Enums.Format.FORMAT_R32G32_SFLOAT' from
-    --     @StorageImageExtendedFormats@ SPIR-V capability, are already covered
-    --     by core Vulkan
-    --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-mandatory-features-32bit mandatory format support>.
-    shaderStorageImageExtendedFormats :: Bool
-  , -- | #features-shaderStorageImageMultisample# @shaderStorageImageMultisample@
-    -- specifies whether multisampled storage images are supported. If this
-    -- feature is not enabled, images that are created with a @usage@ that
-    -- includes
-    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT' /must/
-    -- be created with @samples@ equal to
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'. This also
-    -- specifies whether shader modules /can/ declare the
-    -- @StorageImageMultisample@ and @ImageMSArray@ capabilities.
-    shaderStorageImageMultisample :: Bool
-  , -- | #features-shaderStorageImageReadWithoutFormat#
-    -- @shaderStorageImageReadWithoutFormat@ specifies whether storage images
-    -- and storage texel buffers require a format qualifier to be specified
-    -- when reading. @shaderStorageImageReadWithoutFormat@ applies only to
-    -- formats listed in the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>
-    -- list.
-    shaderStorageImageReadWithoutFormat :: Bool
-  , -- | #features-shaderStorageImageWriteWithoutFormat#
-    -- @shaderStorageImageWriteWithoutFormat@ specifies whether storage images
-    -- and storage texel buffers require a format qualifier to be specified
-    -- when writing. @shaderStorageImageWriteWithoutFormat@ applies only to
-    -- formats listed in the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>
-    -- list.
-    shaderStorageImageWriteWithoutFormat :: Bool
-  , -- | #features-shaderUniformBufferArrayDynamicIndexing#
-    -- @shaderUniformBufferArrayDynamicIndexing@ specifies whether arrays of
-    -- uniform buffers /can/ be indexed by /dynamically uniform/ integer
-    -- expressions in shader code. If this feature is not enabled, resources
-    -- with a descriptor type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER' or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
-    -- /must/ be indexed only by constant integral expressions when aggregated
-    -- into arrays in shader code. This also specifies whether shader modules
-    -- /can/ declare the @UniformBufferArrayDynamicIndexing@ capability.
-    shaderUniformBufferArrayDynamicIndexing :: Bool
-  , -- | #features-shaderSampledImageArrayDynamicIndexing#
-    -- @shaderSampledImageArrayDynamicIndexing@ specifies whether arrays of
-    -- samplers or sampled images /can/ be indexed by dynamically uniform
-    -- integer expressions in shader code. If this feature is not enabled,
-    -- resources with a descriptor type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER',
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
-    -- or 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE'
-    -- /must/ be indexed only by constant integral expressions when aggregated
-    -- into arrays in shader code. This also specifies whether shader modules
-    -- /can/ declare the @SampledImageArrayDynamicIndexing@ capability.
-    shaderSampledImageArrayDynamicIndexing :: Bool
-  , -- | #features-shaderStorageBufferArrayDynamicIndexing#
-    -- @shaderStorageBufferArrayDynamicIndexing@ specifies whether arrays of
-    -- storage buffers /can/ be indexed by dynamically uniform integer
-    -- expressions in shader code. If this feature is not enabled, resources
-    -- with a descriptor type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER' or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
-    -- /must/ be indexed only by constant integral expressions when aggregated
-    -- into arrays in shader code. This also specifies whether shader modules
-    -- /can/ declare the @StorageBufferArrayDynamicIndexing@ capability.
-    shaderStorageBufferArrayDynamicIndexing :: Bool
-  , -- | #features-shaderStorageImageArrayDynamicIndexing#
-    -- @shaderStorageImageArrayDynamicIndexing@ specifies whether arrays of
-    -- storage images /can/ be indexed by dynamically uniform integer
-    -- expressions in shader code. If this feature is not enabled, resources
-    -- with a descriptor type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'
-    -- /must/ be indexed only by constant integral expressions when aggregated
-    -- into arrays in shader code. This also specifies whether shader modules
-    -- /can/ declare the @StorageImageArrayDynamicIndexing@ capability.
-    shaderStorageImageArrayDynamicIndexing :: Bool
-  , -- | #features-shaderClipDistance# @shaderClipDistance@ specifies whether
-    -- clip distances are supported in shader code. If this feature is not
-    -- enabled, any members decorated with the @ClipDistance@ built-in
-    -- decoration /must/ not be read from or written to in shader modules. This
-    -- also specifies whether shader modules /can/ declare the @ClipDistance@
-    -- capability.
-    shaderClipDistance :: Bool
-  , -- | #features-shaderCullDistance# @shaderCullDistance@ specifies whether
-    -- cull distances are supported in shader code. If this feature is not
-    -- enabled, any members decorated with the @CullDistance@ built-in
-    -- decoration /must/ not be read from or written to in shader modules. This
-    -- also specifies whether shader modules /can/ declare the @CullDistance@
-    -- capability.
-    shaderCullDistance :: Bool
-  , -- | #features-shaderFloat64# @shaderFloat64@ specifies whether 64-bit floats
-    -- (doubles) are supported in shader code. If this feature is not enabled,
-    -- 64-bit floating-point types /must/ not be used in shader code. This also
-    -- specifies whether shader modules /can/ declare the @Float64@ capability.
-    -- Declaring and using 64-bit floats is enabled for all storage classes
-    -- that SPIR-V allows with the @Float64@ capability.
-    shaderFloat64 :: Bool
-  , -- | #features-shaderInt64# @shaderInt64@ specifies whether 64-bit integers
-    -- (signed and unsigned) are supported in shader code. If this feature is
-    -- not enabled, 64-bit integer types /must/ not be used in shader code.
-    -- This also specifies whether shader modules /can/ declare the @Int64@
-    -- capability. Declaring and using 64-bit integers is enabled for all
-    -- storage classes that SPIR-V allows with the @Int64@ capability.
-    shaderInt64 :: Bool
-  , -- | #features-shaderInt16# @shaderInt16@ specifies whether 16-bit integers
-    -- (signed and unsigned) are supported in shader code. If this feature is
-    -- not enabled, 16-bit integer types /must/ not be used in shader code.
-    -- This also specifies whether shader modules /can/ declare the @Int16@
-    -- capability. However, this only enables a subset of the storage classes
-    -- that SPIR-V allows for the @Int16@ SPIR-V capability: Declaring and
-    -- using 16-bit integers in the @Private@, @Workgroup@ (for non-Block
-    -- variables), and @Function@ storage classes is enabled, while declaring
-    -- them in the interface storage classes (e.g., @UniformConstant@,
-    -- @Uniform@, @StorageBuffer@, @Input@, @Output@, and @PushConstant@) is
-    -- not enabled.
-    shaderInt16 :: Bool
-  , -- | #features-shaderResourceResidency# @shaderResourceResidency@ specifies
-    -- whether image operations that return resource residency information are
-    -- supported in shader code. If this feature is not enabled, the
-    -- @OpImageSparse*@ instructions /must/ not be used in shader code. This
-    -- also specifies whether shader modules /can/ declare the
-    -- @SparseResidency@ capability. The feature requires at least one of the
-    -- @sparseResidency*@ features to be supported.
-    shaderResourceResidency :: Bool
-  , -- | #features-shaderResourceMinLod# @shaderResourceMinLod@ specifies whether
-    -- image operations specifying the minimum resource LOD are supported in
-    -- shader code. If this feature is not enabled, the @MinLod@ image operand
-    -- /must/ not be used in shader code. This also specifies whether shader
-    -- modules /can/ declare the @MinLod@ capability.
-    shaderResourceMinLod :: Bool
-  , -- | #features-sparseBinding# @sparseBinding@ specifies whether resource
-    -- memory /can/ be managed at opaque sparse block level instead of at the
-    -- object level. If this feature is not enabled, resource memory /must/ be
-    -- bound only on a per-object basis using the
-    -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory' and
-    -- 'Vulkan.Core10.MemoryManagement.bindImageMemory' commands. In this case,
-    -- buffers and images /must/ not be created with
-    -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT'
-    -- and
-    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT'
-    -- set in the @flags@ member of the 'Vulkan.Core10.Buffer.BufferCreateInfo'
-    -- and 'Vulkan.Core10.Image.ImageCreateInfo' structures, respectively.
-    -- Otherwise resource memory /can/ be managed as described in
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>.
-    sparseBinding :: Bool
-  , -- | #features-sparseResidencyBuffer# @sparseResidencyBuffer@ specifies
-    -- whether the device /can/ access partially resident buffers. If this
-    -- feature is not enabled, buffers /must/ not be created with
-    -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'
-    -- set in the @flags@ member of the 'Vulkan.Core10.Buffer.BufferCreateInfo'
-    -- structure.
-    sparseResidencyBuffer :: Bool
-  , -- | #features-sparseResidencyImage2D# @sparseResidencyImage2D@ specifies
-    -- whether the device /can/ access partially resident 2D images with 1
-    -- sample per pixel. If this feature is not enabled, images with an
-    -- @imageType@ of 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and
-    -- @samples@ set to
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' /must/ not
-    -- be created with
-    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
-    -- set in the @flags@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'
-    -- structure.
-    sparseResidencyImage2D :: Bool
-  , -- | #features-sparseResidencyImage3D# @sparseResidencyImage3D@ specifies
-    -- whether the device /can/ access partially resident 3D images. If this
-    -- feature is not enabled, images with an @imageType@ of
-    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' /must/ not be created with
-    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
-    -- set in the @flags@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'
-    -- structure.
-    sparseResidencyImage3D :: Bool
-  , -- | #features-sparseResidency2Samples# @sparseResidency2Samples@ specifies
-    -- whether the physical device /can/ access partially resident 2D images
-    -- with 2 samples per pixel. If this feature is not enabled, images with an
-    -- @imageType@ of 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and
-    -- @samples@ set to
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_2_BIT' /must/ not
-    -- be created with
-    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
-    -- set in the @flags@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'
-    -- structure.
-    sparseResidency2Samples :: Bool
-  , -- | #features-sparseResidency4Samples# @sparseResidency4Samples@ specifies
-    -- whether the physical device /can/ access partially resident 2D images
-    -- with 4 samples per pixel. If this feature is not enabled, images with an
-    -- @imageType@ of 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and
-    -- @samples@ set to
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_4_BIT' /must/ not
-    -- be created with
-    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
-    -- set in the @flags@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'
-    -- structure.
-    sparseResidency4Samples :: Bool
-  , -- | #features-sparseResidency8Samples# @sparseResidency8Samples@ specifies
-    -- whether the physical device /can/ access partially resident 2D images
-    -- with 8 samples per pixel. If this feature is not enabled, images with an
-    -- @imageType@ of 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and
-    -- @samples@ set to
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_8_BIT' /must/ not
-    -- be created with
-    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
-    -- set in the @flags@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'
-    -- structure.
-    sparseResidency8Samples :: Bool
-  , -- | #features-sparseResidency16Samples# @sparseResidency16Samples@ specifies
-    -- whether the physical device /can/ access partially resident 2D images
-    -- with 16 samples per pixel. If this feature is not enabled, images with
-    -- an @imageType@ of 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and
-    -- @samples@ set to
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_16_BIT' /must/ not
-    -- be created with
-    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
-    -- set in the @flags@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'
-    -- structure.
-    sparseResidency16Samples :: Bool
-  , -- | #features-sparseResidencyAliased# @sparseResidencyAliased@ specifies
-    -- whether the physical device /can/ correctly access data aliased into
-    -- multiple locations. If this feature is not enabled, the
-    -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_ALIASED_BIT'
-    -- and
-    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_ALIASED_BIT'
-    -- enum values /must/ not be used in @flags@ members of the
-    -- 'Vulkan.Core10.Buffer.BufferCreateInfo' and
-    -- 'Vulkan.Core10.Image.ImageCreateInfo' structures, respectively.
-    sparseResidencyAliased :: Bool
-  , -- | #features-variableMultisampleRate# @variableMultisampleRate@ specifies
-    -- whether all pipelines that will be bound to a command buffer during a
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments>
-    -- /must/ have the same value for
-    -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@.
-    -- If set to 'Vulkan.Core10.FundamentalTypes.TRUE', the implementation
-    -- supports variable multisample rates in a subpass which uses no
-    -- attachments. If set to 'Vulkan.Core10.FundamentalTypes.FALSE', then all
-    -- pipelines bound in such a subpass /must/ have the same multisample rate.
-    -- This has no effect in situations where a subpass uses any attachments.
-    variableMultisampleRate :: Bool
-  , -- | #features-inheritedQueries# @inheritedQueries@ specifies whether a
-    -- secondary command buffer /may/ be executed while a query is active.
-    inheritedQueries :: Bool
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceFeatures)
-#endif
-deriving instance Show PhysicalDeviceFeatures
-
-instance ToCStruct PhysicalDeviceFeatures where
-  withCStruct x f = allocaBytes 220 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceFeatures{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (robustBufferAccess))
-    poke ((p `plusPtr` 4 :: Ptr Bool32)) (boolToBool32 (fullDrawIndexUint32))
-    poke ((p `plusPtr` 8 :: Ptr Bool32)) (boolToBool32 (imageCubeArray))
-    poke ((p `plusPtr` 12 :: Ptr Bool32)) (boolToBool32 (independentBlend))
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (geometryShader))
-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (tessellationShader))
-    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (sampleRateShading))
-    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (dualSrcBlend))
-    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (logicOp))
-    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (multiDrawIndirect))
-    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (drawIndirectFirstInstance))
-    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (depthClamp))
-    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (depthBiasClamp))
-    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (fillModeNonSolid))
-    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (depthBounds))
-    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (wideLines))
-    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (largePoints))
-    poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (alphaToOne))
-    poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (multiViewport))
-    poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (samplerAnisotropy))
-    poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (textureCompressionETC2))
-    poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (textureCompressionASTC_LDR))
-    poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (textureCompressionBC))
-    poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (occlusionQueryPrecise))
-    poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (pipelineStatisticsQuery))
-    poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (vertexPipelineStoresAndAtomics))
-    poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (fragmentStoresAndAtomics))
-    poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (shaderTessellationAndGeometryPointSize))
-    poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (shaderImageGatherExtended))
-    poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (shaderStorageImageExtendedFormats))
-    poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (shaderStorageImageMultisample))
-    poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (shaderStorageImageReadWithoutFormat))
-    poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (shaderStorageImageWriteWithoutFormat))
-    poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (shaderUniformBufferArrayDynamicIndexing))
-    poke ((p `plusPtr` 136 :: Ptr Bool32)) (boolToBool32 (shaderSampledImageArrayDynamicIndexing))
-    poke ((p `plusPtr` 140 :: Ptr Bool32)) (boolToBool32 (shaderStorageBufferArrayDynamicIndexing))
-    poke ((p `plusPtr` 144 :: Ptr Bool32)) (boolToBool32 (shaderStorageImageArrayDynamicIndexing))
-    poke ((p `plusPtr` 148 :: Ptr Bool32)) (boolToBool32 (shaderClipDistance))
-    poke ((p `plusPtr` 152 :: Ptr Bool32)) (boolToBool32 (shaderCullDistance))
-    poke ((p `plusPtr` 156 :: Ptr Bool32)) (boolToBool32 (shaderFloat64))
-    poke ((p `plusPtr` 160 :: Ptr Bool32)) (boolToBool32 (shaderInt64))
-    poke ((p `plusPtr` 164 :: Ptr Bool32)) (boolToBool32 (shaderInt16))
-    poke ((p `plusPtr` 168 :: Ptr Bool32)) (boolToBool32 (shaderResourceResidency))
-    poke ((p `plusPtr` 172 :: Ptr Bool32)) (boolToBool32 (shaderResourceMinLod))
-    poke ((p `plusPtr` 176 :: Ptr Bool32)) (boolToBool32 (sparseBinding))
-    poke ((p `plusPtr` 180 :: Ptr Bool32)) (boolToBool32 (sparseResidencyBuffer))
-    poke ((p `plusPtr` 184 :: Ptr Bool32)) (boolToBool32 (sparseResidencyImage2D))
-    poke ((p `plusPtr` 188 :: Ptr Bool32)) (boolToBool32 (sparseResidencyImage3D))
-    poke ((p `plusPtr` 192 :: Ptr Bool32)) (boolToBool32 (sparseResidency2Samples))
-    poke ((p `plusPtr` 196 :: Ptr Bool32)) (boolToBool32 (sparseResidency4Samples))
-    poke ((p `plusPtr` 200 :: Ptr Bool32)) (boolToBool32 (sparseResidency8Samples))
-    poke ((p `plusPtr` 204 :: Ptr Bool32)) (boolToBool32 (sparseResidency16Samples))
-    poke ((p `plusPtr` 208 :: Ptr Bool32)) (boolToBool32 (sparseResidencyAliased))
-    poke ((p `plusPtr` 212 :: Ptr Bool32)) (boolToBool32 (variableMultisampleRate))
-    poke ((p `plusPtr` 216 :: Ptr Bool32)) (boolToBool32 (inheritedQueries))
-    f
-  cStructSize = 220
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 4 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 8 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 12 :: Ptr Bool32)) (boolToBool32 (zero))
-    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))
-    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 136 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 140 :: Ptr Bool32)) (boolToBool32 (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))
-    poke ((p `plusPtr` 160 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 164 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 168 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 172 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 176 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 180 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 184 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 188 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 192 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 196 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 200 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 204 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 208 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 212 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 216 :: Ptr Bool32)) (boolToBool32 (zero))
-    f
-
-instance FromCStruct PhysicalDeviceFeatures where
-  peekCStruct p = do
-    robustBufferAccess <- peek @Bool32 ((p `plusPtr` 0 :: Ptr Bool32))
-    fullDrawIndexUint32 <- peek @Bool32 ((p `plusPtr` 4 :: Ptr Bool32))
-    imageCubeArray <- peek @Bool32 ((p `plusPtr` 8 :: Ptr Bool32))
-    independentBlend <- peek @Bool32 ((p `plusPtr` 12 :: Ptr Bool32))
-    geometryShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
-    tessellationShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
-    sampleRateShading <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
-    dualSrcBlend <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))
-    logicOp <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))
-    multiDrawIndirect <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))
-    drawIndirectFirstInstance <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))
-    depthClamp <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))
-    depthBiasClamp <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))
-    fillModeNonSolid <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))
-    depthBounds <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))
-    wideLines <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))
-    largePoints <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32))
-    alphaToOne <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))
-    multiViewport <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))
-    samplerAnisotropy <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))
-    textureCompressionETC2 <- peek @Bool32 ((p `plusPtr` 80 :: Ptr Bool32))
-    textureCompressionASTC_LDR <- peek @Bool32 ((p `plusPtr` 84 :: Ptr Bool32))
-    textureCompressionBC <- peek @Bool32 ((p `plusPtr` 88 :: Ptr Bool32))
-    occlusionQueryPrecise <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))
-    pipelineStatisticsQuery <- peek @Bool32 ((p `plusPtr` 96 :: Ptr Bool32))
-    vertexPipelineStoresAndAtomics <- peek @Bool32 ((p `plusPtr` 100 :: Ptr Bool32))
-    fragmentStoresAndAtomics <- peek @Bool32 ((p `plusPtr` 104 :: Ptr Bool32))
-    shaderTessellationAndGeometryPointSize <- peek @Bool32 ((p `plusPtr` 108 :: Ptr Bool32))
-    shaderImageGatherExtended <- peek @Bool32 ((p `plusPtr` 112 :: Ptr Bool32))
-    shaderStorageImageExtendedFormats <- peek @Bool32 ((p `plusPtr` 116 :: Ptr Bool32))
-    shaderStorageImageMultisample <- peek @Bool32 ((p `plusPtr` 120 :: Ptr Bool32))
-    shaderStorageImageReadWithoutFormat <- peek @Bool32 ((p `plusPtr` 124 :: Ptr Bool32))
-    shaderStorageImageWriteWithoutFormat <- peek @Bool32 ((p `plusPtr` 128 :: Ptr Bool32))
-    shaderUniformBufferArrayDynamicIndexing <- peek @Bool32 ((p `plusPtr` 132 :: Ptr Bool32))
-    shaderSampledImageArrayDynamicIndexing <- peek @Bool32 ((p `plusPtr` 136 :: Ptr Bool32))
-    shaderStorageBufferArrayDynamicIndexing <- peek @Bool32 ((p `plusPtr` 140 :: Ptr Bool32))
-    shaderStorageImageArrayDynamicIndexing <- peek @Bool32 ((p `plusPtr` 144 :: Ptr Bool32))
-    shaderClipDistance <- peek @Bool32 ((p `plusPtr` 148 :: Ptr Bool32))
-    shaderCullDistance <- peek @Bool32 ((p `plusPtr` 152 :: Ptr Bool32))
-    shaderFloat64 <- peek @Bool32 ((p `plusPtr` 156 :: Ptr Bool32))
-    shaderInt64 <- peek @Bool32 ((p `plusPtr` 160 :: Ptr Bool32))
-    shaderInt16 <- peek @Bool32 ((p `plusPtr` 164 :: Ptr Bool32))
-    shaderResourceResidency <- peek @Bool32 ((p `plusPtr` 168 :: Ptr Bool32))
-    shaderResourceMinLod <- peek @Bool32 ((p `plusPtr` 172 :: Ptr Bool32))
-    sparseBinding <- peek @Bool32 ((p `plusPtr` 176 :: Ptr Bool32))
-    sparseResidencyBuffer <- peek @Bool32 ((p `plusPtr` 180 :: Ptr Bool32))
-    sparseResidencyImage2D <- peek @Bool32 ((p `plusPtr` 184 :: Ptr Bool32))
-    sparseResidencyImage3D <- peek @Bool32 ((p `plusPtr` 188 :: Ptr Bool32))
-    sparseResidency2Samples <- peek @Bool32 ((p `plusPtr` 192 :: Ptr Bool32))
-    sparseResidency4Samples <- peek @Bool32 ((p `plusPtr` 196 :: Ptr Bool32))
-    sparseResidency8Samples <- peek @Bool32 ((p `plusPtr` 200 :: Ptr Bool32))
-    sparseResidency16Samples <- peek @Bool32 ((p `plusPtr` 204 :: Ptr Bool32))
-    sparseResidencyAliased <- peek @Bool32 ((p `plusPtr` 208 :: Ptr Bool32))
-    variableMultisampleRate <- peek @Bool32 ((p `plusPtr` 212 :: Ptr Bool32))
-    inheritedQueries <- peek @Bool32 ((p `plusPtr` 216 :: Ptr Bool32))
-    pure $ PhysicalDeviceFeatures
-             (bool32ToBool robustBufferAccess)
-             (bool32ToBool fullDrawIndexUint32)
-             (bool32ToBool imageCubeArray)
-             (bool32ToBool independentBlend)
-             (bool32ToBool geometryShader)
-             (bool32ToBool tessellationShader)
-             (bool32ToBool sampleRateShading)
-             (bool32ToBool dualSrcBlend)
-             (bool32ToBool logicOp)
-             (bool32ToBool multiDrawIndirect)
-             (bool32ToBool drawIndirectFirstInstance)
-             (bool32ToBool depthClamp)
-             (bool32ToBool depthBiasClamp)
-             (bool32ToBool fillModeNonSolid)
-             (bool32ToBool depthBounds)
-             (bool32ToBool wideLines)
-             (bool32ToBool largePoints)
-             (bool32ToBool alphaToOne)
-             (bool32ToBool multiViewport)
-             (bool32ToBool samplerAnisotropy)
-             (bool32ToBool textureCompressionETC2)
-             (bool32ToBool textureCompressionASTC_LDR)
-             (bool32ToBool textureCompressionBC)
-             (bool32ToBool occlusionQueryPrecise)
-             (bool32ToBool pipelineStatisticsQuery)
-             (bool32ToBool vertexPipelineStoresAndAtomics)
-             (bool32ToBool fragmentStoresAndAtomics)
-             (bool32ToBool shaderTessellationAndGeometryPointSize)
-             (bool32ToBool shaderImageGatherExtended)
-             (bool32ToBool shaderStorageImageExtendedFormats)
-             (bool32ToBool shaderStorageImageMultisample)
-             (bool32ToBool shaderStorageImageReadWithoutFormat)
-             (bool32ToBool shaderStorageImageWriteWithoutFormat)
-             (bool32ToBool shaderUniformBufferArrayDynamicIndexing)
-             (bool32ToBool shaderSampledImageArrayDynamicIndexing)
-             (bool32ToBool shaderStorageBufferArrayDynamicIndexing)
-             (bool32ToBool shaderStorageImageArrayDynamicIndexing)
-             (bool32ToBool shaderClipDistance)
-             (bool32ToBool shaderCullDistance)
-             (bool32ToBool shaderFloat64)
-             (bool32ToBool shaderInt64)
-             (bool32ToBool shaderInt16)
-             (bool32ToBool shaderResourceResidency)
-             (bool32ToBool shaderResourceMinLod)
-             (bool32ToBool sparseBinding)
-             (bool32ToBool sparseResidencyBuffer)
-             (bool32ToBool sparseResidencyImage2D)
-             (bool32ToBool sparseResidencyImage3D)
-             (bool32ToBool sparseResidency2Samples)
-             (bool32ToBool sparseResidency4Samples)
-             (bool32ToBool sparseResidency8Samples)
-             (bool32ToBool sparseResidency16Samples)
-             (bool32ToBool sparseResidencyAliased)
-             (bool32ToBool variableMultisampleRate)
-             (bool32ToBool inheritedQueries)
-
-instance Storable PhysicalDeviceFeatures where
-  sizeOf ~_ = 220
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PhysicalDeviceFeatures where
-  zero = PhysicalDeviceFeatures
-           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
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkPhysicalDeviceSparseProperties - Structure specifying physical device
--- sparse memory properties
---
--- = 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', 'PhysicalDeviceProperties'
-data PhysicalDeviceSparseProperties = PhysicalDeviceSparseProperties
-  { -- | @residencyStandard2DBlockShape@ is 'Vulkan.Core10.FundamentalTypes.TRUE'
-    -- if the physical device will access all single-sample 2D sparse resources
-    -- using the standard sparse image block shapes (based on image format), as
-    -- described in the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)>
-    -- table. If this property is not supported the value returned in the
-    -- @imageGranularity@ member of the
-    -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'
-    -- structure for single-sample 2D images is not /required/ to match the
-    -- standard sparse image block dimensions listed in the table.
-    residencyStandard2DBlockShape :: Bool
-  , -- | @residencyStandard2DMultisampleBlockShape@ is
-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the physical device will access
-    -- all multisample 2D sparse resources using the standard sparse image
-    -- block shapes (based on image format), as described in the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapesmsaa Standard Sparse Image Block Shapes (MSAA)>
-    -- table. If this property is not supported, the value returned in the
-    -- @imageGranularity@ member of the
-    -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'
-    -- structure for multisample 2D images is not /required/ to match the
-    -- standard sparse image block dimensions listed in the table.
-    residencyStandard2DMultisampleBlockShape :: Bool
-  , -- | @residencyStandard3DBlockShape@ is 'Vulkan.Core10.FundamentalTypes.TRUE'
-    -- if the physical device will access all 3D sparse resources using the
-    -- standard sparse image block shapes (based on image format), as described
-    -- in the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)>
-    -- table. If this property is not supported, the value returned in the
-    -- @imageGranularity@ member of the
-    -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'
-    -- structure for 3D images is not /required/ to match the standard sparse
-    -- image block dimensions listed in the table.
-    residencyStandard3DBlockShape :: Bool
-  , -- | @residencyAlignedMipSize@ is 'Vulkan.Core10.FundamentalTypes.TRUE' if
-    -- images with mip level dimensions that are not integer multiples of the
-    -- corresponding dimensions of the sparse image block /may/ be placed in
-    -- the mip tail. If this property is not reported, only mip levels with
-    -- dimensions smaller than the @imageGranularity@ member of the
-    -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'
-    -- structure will be placed in the mip tail. If this property is reported
-    -- the implementation is allowed to return
-    -- 'Vulkan.Core10.Enums.SparseImageFormatFlagBits.SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT'
-    -- in the @flags@ member of
-    -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties',
-    -- indicating that mip level dimensions that are not integer multiples of
-    -- the corresponding dimensions of the sparse image block will be placed in
-    -- the mip tail.
-    residencyAlignedMipSize :: Bool
-  , -- | @residencyNonResidentStrict@ specifies whether the physical device /can/
-    -- consistently access non-resident regions of a resource. If this property
-    -- is 'Vulkan.Core10.FundamentalTypes.TRUE', access to non-resident regions
-    -- of resources will be guaranteed to return values as if the resource was
-    -- populated with 0; writes to non-resident regions will be discarded.
-    residencyNonResidentStrict :: Bool
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceSparseProperties)
-#endif
-deriving instance Show PhysicalDeviceSparseProperties
-
-instance ToCStruct PhysicalDeviceSparseProperties where
-  withCStruct x f = allocaBytes 20 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceSparseProperties{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (residencyStandard2DBlockShape))
-    poke ((p `plusPtr` 4 :: Ptr Bool32)) (boolToBool32 (residencyStandard2DMultisampleBlockShape))
-    poke ((p `plusPtr` 8 :: Ptr Bool32)) (boolToBool32 (residencyStandard3DBlockShape))
-    poke ((p `plusPtr` 12 :: Ptr Bool32)) (boolToBool32 (residencyAlignedMipSize))
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (residencyNonResidentStrict))
-    f
-  cStructSize = 20
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 4 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 8 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 12 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
-    f
-
-instance FromCStruct PhysicalDeviceSparseProperties where
-  peekCStruct p = do
-    residencyStandard2DBlockShape <- peek @Bool32 ((p `plusPtr` 0 :: Ptr Bool32))
-    residencyStandard2DMultisampleBlockShape <- peek @Bool32 ((p `plusPtr` 4 :: Ptr Bool32))
-    residencyStandard3DBlockShape <- peek @Bool32 ((p `plusPtr` 8 :: Ptr Bool32))
-    residencyAlignedMipSize <- peek @Bool32 ((p `plusPtr` 12 :: Ptr Bool32))
-    residencyNonResidentStrict <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
-    pure $ PhysicalDeviceSparseProperties
-             (bool32ToBool residencyStandard2DBlockShape)
-             (bool32ToBool residencyStandard2DMultisampleBlockShape)
-             (bool32ToBool residencyStandard3DBlockShape)
-             (bool32ToBool residencyAlignedMipSize)
-             (bool32ToBool residencyNonResidentStrict)
-
-instance Storable PhysicalDeviceSparseProperties where
-  sizeOf ~_ = 20
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PhysicalDeviceSparseProperties where
-  zero = PhysicalDeviceSparseProperties
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkPhysicalDeviceLimits - Structure reporting implementation-dependent
--- physical device limits
---
--- = Members
---
--- The 'PhysicalDeviceLimits' are properties of the physical device. These
--- are available in the @limits@ member of the 'PhysicalDeviceProperties'
--- structure which is returned from 'getPhysicalDeviceProperties'.
---
--- = 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.FundamentalTypes.DeviceSize', 'PhysicalDeviceProperties',
--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlags'
-data PhysicalDeviceLimits = PhysicalDeviceLimits
-  { -- | #limits-maxImageDimension1D# @maxImageDimension1D@ is the largest
-    -- dimension (@width@) that is guaranteed to be supported for all images
-    -- created with an @imageType@ of
-    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D'. Some combinations of
-    -- image parameters (format, usage, etc.) /may/ allow support for larger
-    -- dimensions, which /can/ be queried using
-    -- 'getPhysicalDeviceImageFormatProperties'.
-    maxImageDimension1D :: Word32
-  , -- | #limits-maxImageDimension2D# @maxImageDimension2D@ is the largest
-    -- dimension (@width@ or @height@) that is guaranteed to be supported for
-    -- all images created with an @imageType@ of
-    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and without
-    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT'
-    -- set in @flags@. Some combinations of image parameters (format, usage,
-    -- etc.) /may/ allow support for larger dimensions, which /can/ be queried
-    -- using 'getPhysicalDeviceImageFormatProperties'.
-    maxImageDimension2D :: Word32
-  , -- | #limits-maxImageDimension3D# @maxImageDimension3D@ is the largest
-    -- dimension (@width@, @height@, or @depth@) that is guaranteed to be
-    -- supported for all images created with an @imageType@ of
-    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D'. Some combinations of
-    -- image parameters (format, usage, etc.) /may/ allow support for larger
-    -- dimensions, which /can/ be queried using
-    -- 'getPhysicalDeviceImageFormatProperties'.
-    maxImageDimension3D :: Word32
-  , -- | #limits-maxImageDimensionCube# @maxImageDimensionCube@ is the largest
-    -- dimension (@width@ or @height@) that is guaranteed to be supported for
-    -- all images created with an @imageType@ of
-    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and with
-    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT'
-    -- set in @flags@. Some combinations of image parameters (format, usage,
-    -- etc.) /may/ allow support for larger dimensions, which /can/ be queried
-    -- using 'getPhysicalDeviceImageFormatProperties'.
-    maxImageDimensionCube :: Word32
-  , -- | #limits-maxImageArrayLayers# @maxImageArrayLayers@ is the maximum number
-    -- of layers (@arrayLayers@) for an image.
-    maxImageArrayLayers :: Word32
-  , -- | #limits-maxTexelBufferElements# @maxTexelBufferElements@ is the maximum
-    -- number of addressable texels for a buffer view created on a buffer which
-    -- was created with the
-    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT'
-    -- or
-    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT'
-    -- set in the @usage@ member of the 'Vulkan.Core10.Buffer.BufferCreateInfo'
-    -- structure.
-    maxTexelBufferElements :: Word32
-  , -- | #limits-maxUniformBufferRange# @maxUniformBufferRange@ is the maximum
-    -- value that /can/ be specified in the @range@ member of a
-    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structure passed to
-    -- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets' for descriptors of
-    -- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER'
-    -- or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'.
-    maxUniformBufferRange :: Word32
-  , -- | #limits-maxStorageBufferRange# @maxStorageBufferRange@ is the maximum
-    -- value that /can/ be specified in the @range@ member of a
-    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structure passed to
-    -- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets' for descriptors of
-    -- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'
-    -- or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'.
-    maxStorageBufferRange :: Word32
-  , -- | #limits-maxPushConstantsSize# @maxPushConstantsSize@ is the maximum
-    -- size, in bytes, of the pool of push constant memory. For each of the
-    -- push constant ranges indicated by the @pPushConstantRanges@ member of
-    -- the 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo' structure,
-    -- (@offset@ + @size@) /must/ be less than or equal to this limit.
-    maxPushConstantsSize :: Word32
-  , -- | #limits-maxMemoryAllocationCount# @maxMemoryAllocationCount@ is the
-    -- maximum number of device memory allocations, as created by
-    -- 'Vulkan.Core10.Memory.allocateMemory', which /can/ simultaneously exist.
-    maxMemoryAllocationCount :: Word32
-  , -- | #limits-maxSamplerAllocationCount# @maxSamplerAllocationCount@ is the
-    -- maximum number of sampler objects, as created by
-    -- 'Vulkan.Core10.Sampler.createSampler', which /can/ simultaneously exist
-    -- on a device.
-    maxSamplerAllocationCount :: Word32
-  , -- | #limits-bufferImageGranularity# @bufferImageGranularity@ is the
-    -- granularity, in bytes, at which buffer or linear image resources, and
-    -- optimal image resources /can/ be bound to adjacent offsets in the same
-    -- 'Vulkan.Core10.Handles.DeviceMemory' object without aliasing. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-bufferimagegranularity Buffer-Image Granularity>
-    -- for more details.
-    bufferImageGranularity :: DeviceSize
-  , -- | #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. 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
-    -- pipeline. All 'Vulkan.Core10.Handles.DescriptorSet' decorations in
-    -- shader modules /must/ have a value less than @maxBoundDescriptorSets@.
-    -- See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sets>.
-    maxBoundDescriptorSets :: Word32
-  , -- | #limits-maxPerStageDescriptorSamplers# @maxPerStageDescriptorSamplers@
-    -- is the maximum number of samplers that /can/ be accessible to a single
-    -- shader stage in a pipeline layout. Descriptors with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER' or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'
-    -- count against this limit. Only descriptors 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. A descriptor is accessible to a shader
-    -- stage when the @stageFlags@ member of the
-    -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has
-    -- the bit for that shader stage set. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler>
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>.
-    maxPerStageDescriptorSamplers :: Word32
-  , -- | #limits-maxPerStageDescriptorUniformBuffers#
-    -- @maxPerStageDescriptorUniformBuffers@ is the maximum number of uniform
-    -- buffers that /can/ be accessible to a single shader stage in a pipeline
-    -- layout. Descriptors with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER' or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
-    -- count against this limit. Only descriptors 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. A descriptor is accessible to a shader
-    -- stage when the @stageFlags@ member of the
-    -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has
-    -- the bit for that shader stage set. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer>
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.
-    maxPerStageDescriptorUniformBuffers :: Word32
-  , -- | #limits-maxPerStageDescriptorStorageBuffers#
-    -- @maxPerStageDescriptorStorageBuffers@ is the maximum number of storage
-    -- buffers that /can/ be accessible to a single shader stage in a pipeline
-    -- layout. Descriptors with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER' or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
-    -- count against this limit. Only descriptors 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. A descriptor is accessible to a
-    -- pipeline shader stage when the @stageFlags@ member of the
-    -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has
-    -- the bit for that shader stage set. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer>
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.
-    maxPerStageDescriptorStorageBuffers :: Word32
-  , -- | #limits-maxPerStageDescriptorSampledImages#
-    -- @maxPerStageDescriptorSampledImages@ is the maximum number of sampled
-    -- images that /can/ be accessible to a single shader stage in a pipeline
-    -- layout. Descriptors with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE', or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'
-    -- count against this limit. Only descriptors 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. A descriptor is accessible to a
-    -- pipeline shader stage when the @stageFlags@ member of the
-    -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has
-    -- the bit for that shader stage set. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage>,
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>.
-    maxPerStageDescriptorSampledImages :: Word32
-  , -- | #limits-maxPerStageDescriptorStorageImages#
-    -- @maxPerStageDescriptorStorageImages@ is the maximum number of storage
-    -- images that /can/ be accessible to a single shader stage in a pipeline
-    -- layout. Descriptors with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE', or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
-    -- count against this limit. Only descriptors 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. A descriptor is accessible to a
-    -- pipeline shader stage when the @stageFlags@ member of the
-    -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has
-    -- the bit for that shader stage set. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage>,
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>.
-    maxPerStageDescriptorStorageImages :: Word32
-  , -- | #limits-maxPerStageDescriptorInputAttachments#
-    -- @maxPerStageDescriptorInputAttachments@ is the maximum number of input
-    -- attachments that /can/ be accessible to a single shader stage in a
-    -- pipeline layout. Descriptors with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
-    -- count against this limit. Only descriptors 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. A descriptor is accessible to a
-    -- pipeline shader stage when the @stageFlags@ member of the
-    -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has
-    -- the bit for that shader stage set. These are only supported for the
-    -- fragment stage. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment>.
-    maxPerStageDescriptorInputAttachments :: Word32
-  , -- | #limits-maxPerStageResources# @maxPerStageResources@ is the maximum
-    -- number of resources that /can/ be accessible to a single shader stage in
-    -- a pipeline layout. Descriptors with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER',
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER',
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER',
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER',
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC',
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC',
-    -- or 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
-    -- count against this limit. Only descriptors 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. For the fragment shader stage the
-    -- framebuffer color attachments also count against this limit.
-    maxPerStageResources :: Word32
-  , -- | #limits-maxDescriptorSetSamplers# @maxDescriptorSetSamplers@ is the
-    -- maximum number of samplers that /can/ be included in a pipeline layout.
-    -- Descriptors with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER' or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'
-    -- count against this limit. Only descriptors 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. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler>
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>.
-    maxDescriptorSetSamplers :: Word32
-  , -- | #limits-maxDescriptorSetUniformBuffers# @maxDescriptorSetUniformBuffers@
-    -- is the maximum number of uniform buffers that /can/ be included in a
-    -- pipeline layout. Descriptors with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER' or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
-    -- count against this limit. Only descriptors 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. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer>
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.
-    maxDescriptorSetUniformBuffers :: Word32
-  , -- | #limits-maxDescriptorSetUniformBuffersDynamic#
-    -- @maxDescriptorSetUniformBuffersDynamic@ is the maximum number of dynamic
-    -- uniform buffers that /can/ be included in a pipeline layout. Descriptors
-    -- with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
-    -- count against this limit. Only descriptors 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. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.
-    maxDescriptorSetUniformBuffersDynamic :: Word32
-  , -- | #limits-maxDescriptorSetStorageBuffers# @maxDescriptorSetStorageBuffers@
-    -- is the maximum number of storage buffers that /can/ be included in a
-    -- pipeline layout. Descriptors with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER' or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
-    -- count against this limit. Only descriptors 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. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer>
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.
-    maxDescriptorSetStorageBuffers :: Word32
-  , -- | #limits-maxDescriptorSetStorageBuffersDynamic#
-    -- @maxDescriptorSetStorageBuffersDynamic@ is the maximum number of dynamic
-    -- storage buffers that /can/ be included in a pipeline layout. Descriptors
-    -- with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
-    -- count against this limit. Only descriptors 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. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.
-    maxDescriptorSetStorageBuffersDynamic :: Word32
-  , -- | #limits-maxDescriptorSetSampledImages# @maxDescriptorSetSampledImages@
-    -- is the maximum number of sampled images that /can/ be included in a
-    -- pipeline layout. Descriptors with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE', or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'
-    -- count against this limit. Only descriptors 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. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage>,
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>.
-    maxDescriptorSetSampledImages :: Word32
-  , -- | #limits-maxDescriptorSetStorageImages# @maxDescriptorSetStorageImages@
-    -- is the maximum number of storage images that /can/ be included in a
-    -- pipeline layout. Descriptors with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE', or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
-    -- count against this limit. Only descriptors 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. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage>,
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>.
-    maxDescriptorSetStorageImages :: Word32
-  , -- | #limits-maxDescriptorSetInputAttachments#
-    -- @maxDescriptorSetInputAttachments@ is the maximum number of input
-    -- attachments that /can/ be included in a pipeline layout. Descriptors
-    -- with a type of
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
-    -- count against this limit. Only descriptors 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. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment>.
-    maxDescriptorSetInputAttachments :: Word32
-  , -- | #limits-maxVertexInputAttributes# @maxVertexInputAttributes@ is the
-    -- maximum number of vertex input attributes that /can/ be specified for a
-    -- graphics pipeline. These are described in the array of
-    -- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription' structures that
-    -- are provided at graphics pipeline creation time via the
-    -- @pVertexAttributeDescriptions@ member of the
-    -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo' structure.
-    -- See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-attrib>
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.
-    maxVertexInputAttributes :: Word32
-  , -- | #limits-maxVertexInputBindings# @maxVertexInputBindings@ is the maximum
-    -- number of vertex buffers that /can/ be specified for providing vertex
-    -- attributes to a graphics pipeline. These are described in the array of
-    -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' structures that
-    -- are provided at graphics pipeline creation time via the
-    -- @pVertexBindingDescriptions@ member of the
-    -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo' structure.
-    -- The @binding@ member of
-    -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' /must/ be less
-    -- than this limit. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.
-    maxVertexInputBindings :: Word32
-  , -- | #limits-maxVertexInputAttributeOffset# @maxVertexInputAttributeOffset@
-    -- is the maximum vertex input attribute offset that /can/ be added to the
-    -- vertex input binding stride. The @offset@ member of the
-    -- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription' structure
-    -- /must/ be less than or equal to this limit. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.
-    maxVertexInputAttributeOffset :: Word32
-  , -- | #limits-maxVertexInputBindingStride# @maxVertexInputBindingStride@ is
-    -- the maximum vertex input binding stride that /can/ be specified in a
-    -- vertex input binding. The @stride@ member of the
-    -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' structure /must/
-    -- be less than or equal to this limit. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.
-    maxVertexInputBindingStride :: Word32
-  , -- | #limits-maxVertexOutputComponents# @maxVertexOutputComponents@ is the
-    -- maximum number of components of output variables which /can/ be output
-    -- by a vertex shader. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-vertex>.
-    maxVertexOutputComponents :: Word32
-  , -- | #limits-maxTessellationGenerationLevel# @maxTessellationGenerationLevel@
-    -- is the maximum tessellation generation level supported by the
-    -- fixed-function tessellation primitive generator. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>.
-    maxTessellationGenerationLevel :: Word32
-  , -- | #limits-maxTessellationPatchSize# @maxTessellationPatchSize@ is the
-    -- maximum patch size, in vertices, of patches that /can/ be processed by
-    -- the tessellation control shader and tessellation primitive generator.
-    -- The @patchControlPoints@ member of the
-    -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo' structure
-    -- specified at pipeline creation time and the value provided in the
-    -- @OutputVertices@ execution mode of shader modules /must/ be less than or
-    -- equal to this limit. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>.
-    maxTessellationPatchSize :: Word32
-  , -- | #limits-maxTessellationControlPerVertexInputComponents#
-    -- @maxTessellationControlPerVertexInputComponents@ is the maximum number
-    -- of components of input variables which /can/ be provided as per-vertex
-    -- inputs to the tessellation control shader stage.
-    maxTessellationControlPerVertexInputComponents :: Word32
-  , -- | #limits-maxTessellationControlPerVertexOutputComponents#
-    -- @maxTessellationControlPerVertexOutputComponents@ is the maximum number
-    -- of components of per-vertex output variables which /can/ be output from
-    -- the tessellation control shader stage.
-    maxTessellationControlPerVertexOutputComponents :: Word32
-  , -- | #limits-maxTessellationControlPerPatchOutputComponents#
-    -- @maxTessellationControlPerPatchOutputComponents@ is the maximum number
-    -- of components of per-patch output variables which /can/ be output from
-    -- the tessellation control shader stage.
-    maxTessellationControlPerPatchOutputComponents :: Word32
-  , -- | #limits-maxTessellationControlTotalOutputComponents#
-    -- @maxTessellationControlTotalOutputComponents@ is the maximum total
-    -- number of components of per-vertex and per-patch output variables which
-    -- /can/ be output from the tessellation control shader stage.
-    maxTessellationControlTotalOutputComponents :: Word32
-  , -- | #limits-maxTessellationEvaluationInputComponents#
-    -- @maxTessellationEvaluationInputComponents@ is the maximum number of
-    -- components of input variables which /can/ be provided as per-vertex
-    -- inputs to the tessellation evaluation shader stage.
-    maxTessellationEvaluationInputComponents :: Word32
-  , -- | #limits-maxTessellationEvaluationOutputComponents#
-    -- @maxTessellationEvaluationOutputComponents@ is the maximum number of
-    -- components of per-vertex output variables which /can/ be output from the
-    -- tessellation evaluation shader stage.
-    maxTessellationEvaluationOutputComponents :: Word32
-  , -- | #limits-maxGeometryShaderInvocations# @maxGeometryShaderInvocations@ is
-    -- the maximum invocation count supported for instanced geometry shaders.
-    -- The value provided in the @Invocations@ execution mode of shader modules
-    -- /must/ be less than or equal to this limit. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#geometry>.
-    maxGeometryShaderInvocations :: Word32
-  , -- | #limits-maxGeometryInputComponents# @maxGeometryInputComponents@ is the
-    -- maximum number of components of input variables which /can/ be provided
-    -- as inputs to the geometry shader stage.
-    maxGeometryInputComponents :: Word32
-  , -- | #limits-maxGeometryOutputComponents# @maxGeometryOutputComponents@ is
-    -- the maximum number of components of output variables which /can/ be
-    -- output from the geometry shader stage.
-    maxGeometryOutputComponents :: Word32
-  , -- | #limits-maxGeometryOutputVertices# @maxGeometryOutputVertices@ is the
-    -- maximum number of vertices which /can/ be emitted by any geometry
-    -- shader.
-    maxGeometryOutputVertices :: Word32
-  , -- | #limits-maxGeometryTotalOutputComponents#
-    -- @maxGeometryTotalOutputComponents@ is the maximum total number of
-    -- components of output variables, across all emitted vertices, which /can/
-    -- be output from the geometry shader stage.
-    maxGeometryTotalOutputComponents :: Word32
-  , -- | #limits-maxFragmentInputComponents# @maxFragmentInputComponents@ is the
-    -- maximum number of components of input variables which /can/ be provided
-    -- as inputs to the fragment shader stage.
-    maxFragmentInputComponents :: Word32
-  , -- | #limits-maxFragmentOutputAttachments# @maxFragmentOutputAttachments@ is
-    -- the maximum number of output attachments which /can/ be written to by
-    -- the fragment shader stage.
-    maxFragmentOutputAttachments :: Word32
-  , -- | #limits-maxFragmentDualSrcAttachments# @maxFragmentDualSrcAttachments@
-    -- is the maximum number of output attachments which /can/ be written to by
-    -- the fragment shader stage when blending is enabled and one of the dual
-    -- source blend modes is in use. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-dsb>
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>.
-    maxFragmentDualSrcAttachments :: Word32
-  , -- | #limits-maxFragmentCombinedOutputResources#
-    -- @maxFragmentCombinedOutputResources@ is the total number of storage
-    -- buffers, storage images, and output @Location@ decorated color
-    -- attachments (described in
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>)
-    -- which /can/ be used in the fragment shader stage.
-    maxFragmentCombinedOutputResources :: Word32
-  , -- | #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.
-    maxComputeSharedMemorySize :: Word32
-  , -- | #limits-maxComputeWorkGroupCount# @maxComputeWorkGroupCount@[3] is the
-    -- maximum number of local workgroups that /can/ be dispatched by a single
-    -- dispatching 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 dispatching commands /must/ be less
-    -- than or equal to the corresponding limit. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#dispatch>.
-    maxComputeWorkGroupCount :: (Word32, Word32, Word32)
-  , -- | #limits-maxComputeWorkGroupInvocations# @maxComputeWorkGroupInvocations@
-    -- is the maximum total number of compute shader invocations in a single
-    -- local workgroup. The product of the X, Y, and Z sizes, as specified by
-    -- the @LocalSize@ 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.
-    maxComputeWorkGroupInvocations :: Word32
-  , -- | #limits-maxComputeWorkGroupSize# @maxComputeWorkGroupSize@[3] is the
-    -- maximum size of a local compute workgroup, per dimension. These three
-    -- values represent the maximum local workgroup size in the X, Y, and Z
-    -- dimensions, respectively. The @x@, @y@, and @z@ sizes, 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.
-    maxComputeWorkGroupSize :: (Word32, Word32, Word32)
-  , -- | #limits-subPixelPrecisionBits# @subPixelPrecisionBits@ is the number of
-    -- bits of subpixel precision in framebuffer coordinates xf and yf. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast>.
-    subPixelPrecisionBits :: Word32
-  , -- | #limits-subTexelPrecisionBits# @subTexelPrecisionBits@ is the number of
-    -- bits of precision in the division along an axis of an image used for
-    -- minification and magnification filters. 2@subTexelPrecisionBits@ is the
-    -- actual number of divisions along each axis of the image represented.
-    -- Sub-texel values calculated during image sampling will snap to these
-    -- locations when generating the filtered results.
-    subTexelPrecisionBits :: Word32
-  , -- | #limits-mipmapPrecisionBits# @mipmapPrecisionBits@ is the number of bits
-    -- of division that the LOD calculation for mipmap fetching get snapped to
-    -- when determining the contribution from each mip level to the mip
-    -- filtered results. 2@mipmapPrecisionBits@ is the actual number of
-    -- divisions.
-    mipmapPrecisionBits :: Word32
-  , -- | #limits-maxDrawIndexedIndexValue# @maxDrawIndexedIndexValue@ is the
-    -- maximum index value that /can/ be used for indexed draw calls when using
-    -- 32-bit indices. This excludes the primitive restart index value of
-    -- 0xFFFFFFFF. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fullDrawIndexUint32 fullDrawIndexUint32>.
-    maxDrawIndexedIndexValue :: Word32
-  , -- | #limits-maxDrawIndirectCount# @maxDrawIndirectCount@ is the maximum draw
-    -- count that is supported for indirect drawing calls. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>.
-    maxDrawIndirectCount :: Word32
-  , -- | #limits-maxSamplerLodBias# @maxSamplerLodBias@ is the maximum absolute
-    -- sampler LOD bias. The sum of the @mipLodBias@ member of the
-    -- 'Vulkan.Core10.Sampler.SamplerCreateInfo' structure and the @Bias@
-    -- operand of image sampling operations in shader modules (or 0 if no
-    -- @Bias@ operand is provided to an image sampling operation) are clamped
-    -- to the range [-@maxSamplerLodBias@,+@maxSamplerLodBias@]. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-mipLodBias>.
-    maxSamplerLodBias :: Float
-  , -- | #limits-maxSamplerAnisotropy# @maxSamplerAnisotropy@ is the maximum
-    -- degree of sampler anisotropy. The maximum degree of anisotropic
-    -- filtering used for an image sampling operation is the minimum of the
-    -- @maxAnisotropy@ member of the 'Vulkan.Core10.Sampler.SamplerCreateInfo'
-    -- structure and this limit. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-maxAnisotropy>.
-    maxSamplerAnisotropy :: Float
-  , -- | #limits-maxViewports# @maxViewports@ is the maximum number of active
-    -- viewports. The @viewportCount@ member of the
-    -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' structure that
-    -- is provided at pipeline creation /must/ be less than or equal to this
-    -- limit.
-    maxViewports :: Word32
-  , -- | #limits-maxViewportDimensions# @maxViewportDimensions@[2] are the
-    -- maximum viewport dimensions in the X (width) and Y (height) dimensions,
-    -- respectively. The maximum viewport dimensions /must/ be greater than or
-    -- equal to the largest image which /can/ be created and used as a
-    -- framebuffer attachment. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>.
-    maxViewportDimensions :: (Word32, Word32)
-  , -- | #limits-viewportboundsrange# @viewportBoundsRange@[2] is the [minimum,
-    -- maximum] range that the corners of a viewport /must/ be contained in.
-    -- This range /must/ be at least [-2 × @size@, 2 × @size@ - 1], where
-    -- @size@ = max(@maxViewportDimensions@[0], @maxViewportDimensions@[1]).
-    -- See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>.
-    --
-    -- Note
-    --
-    -- The intent of the @viewportBoundsRange@ limit is to allow a maximum
-    -- sized viewport to be arbitrarily shifted relative to the output target
-    -- as long as at least some portion intersects. This would give a bounds
-    -- limit of [-@size@ + 1, 2 × @size@ - 1] which would allow all possible
-    -- non-empty-set intersections of the output target and the viewport. Since
-    -- these numbers are typically powers of two, picking the signed number
-    -- range using the smallest possible number of bits ends up with the
-    -- specified range.
-    viewportBoundsRange :: (Float, Float)
-  , -- | #limits-viewportSubPixelBits# @viewportSubPixelBits@ is the number of
-    -- bits of subpixel precision for viewport bounds. The subpixel precision
-    -- that floating-point viewport bounds are interpreted at is given by this
-    -- limit.
-    viewportSubPixelBits :: Word32
-  , -- | #limits-minMemoryMapAlignment# @minMemoryMapAlignment@ is the minimum
-    -- /required/ alignment, in bytes, of host visible memory allocations
-    -- within the host address space. When mapping a memory allocation with
-    -- 'Vulkan.Core10.Memory.mapMemory', subtracting @offset@ bytes from the
-    -- returned pointer will always produce an integer multiple of this limit.
-    -- See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess>.
-    -- The value /must/ be a power of two.
-    minMemoryMapAlignment :: Word64
-  , -- | #limits-minTexelBufferOffsetAlignment# @minTexelBufferOffsetAlignment@
-    -- is the minimum /required/ alignment, in bytes, for the @offset@ member
-    -- of the 'Vulkan.Core10.BufferView.BufferViewCreateInfo' structure for
-    -- texel buffers. The value /must/ be a power of two. If
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>
-    -- is enabled, this limit is equivalent to the maximum of the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetAlignmentBytes uniformTexelBufferOffsetAlignmentBytes>
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetAlignmentBytes storageTexelBufferOffsetAlignmentBytes>
-    -- members of
-    -- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',
-    -- but smaller alignment is /optionally/ allowed by
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetSingleTexelAlignment storageTexelBufferOffsetSingleTexelAlignment>
-    -- and
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetSingleTexelAlignment uniformTexelBufferOffsetSingleTexelAlignment>.
-    -- If
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>
-    -- is not enabled,
-    -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo'::@offset@ /must/ be a
-    -- multiple of this value.
-    minTexelBufferOffsetAlignment :: DeviceSize
-  , -- | #limits-minUniformBufferOffsetAlignment#
-    -- @minUniformBufferOffsetAlignment@ is the minimum /required/ alignment,
-    -- in bytes, for the @offset@ member of the
-    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structure for uniform
-    -- buffers. When a descriptor of type
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER' or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
-    -- is updated, the @offset@ /must/ be an integer multiple of this limit.
-    -- Similarly, dynamic offsets for uniform buffers /must/ be multiples of
-    -- this limit. The value /must/ be a power of two.
-    minUniformBufferOffsetAlignment :: DeviceSize
-  , -- | #limits-minStorageBufferOffsetAlignment#
-    -- @minStorageBufferOffsetAlignment@ is the minimum /required/ alignment,
-    -- in bytes, for the @offset@ member of the
-    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structure for storage
-    -- buffers. When a descriptor of type
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER' or
-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
-    -- is updated, the @offset@ /must/ be an integer multiple of this limit.
-    -- Similarly, dynamic offsets for storage buffers /must/ be multiples of
-    -- this limit. The value /must/ be a power of two.
-    minStorageBufferOffsetAlignment :: DeviceSize
-  , -- | #limits-minTexelOffset# @minTexelOffset@ is the minimum offset value for
-    -- the @ConstOffset@ image operand of any of the @OpImageSample*@ or
-    -- @OpImageFetch*@ image instructions.
-    minTexelOffset :: Int32
-  , -- | #limits-maxTexelOffset# @maxTexelOffset@ is the maximum offset value for
-    -- the @ConstOffset@ image operand of any of the @OpImageSample*@ or
-    -- @OpImageFetch*@ image instructions.
-    maxTexelOffset :: Word32
-  , -- | #limits-minTexelGatherOffset# @minTexelGatherOffset@ is the minimum
-    -- offset value for the @Offset@, @ConstOffset@, or @ConstOffsets@ image
-    -- operands of any of the @OpImage*Gather@ image instructions.
-    minTexelGatherOffset :: Int32
-  , -- | #limits-maxTexelGatherOffset# @maxTexelGatherOffset@ is the maximum
-    -- offset value for the @Offset@, @ConstOffset@, or @ConstOffsets@ image
-    -- operands of any of the @OpImage*Gather@ image instructions.
-    maxTexelGatherOffset :: Word32
-  , -- | #limits-minInterpolationOffset# @minInterpolationOffset@ is the base
-    -- minimum (inclusive) negative offset value for the @Offset@ operand of
-    -- the @InterpolateAtOffset@ extended instruction.
-    minInterpolationOffset :: Float
-  , -- | #limits-maxInterpolationOffset# @maxInterpolationOffset@ is the base
-    -- maximum (inclusive) positive offset value for the @Offset@ operand of
-    -- the @InterpolateAtOffset@ extended instruction.
-    maxInterpolationOffset :: Float
-  , -- | #limits-subPixelInterpolationOffsetBits#
-    -- @subPixelInterpolationOffsetBits@ is the number of fractional bits that
-    -- the @x@ and @y@ offsets to the @InterpolateAtOffset@ extended
-    -- instruction /may/ be rounded to as fixed-point values.
-    subPixelInterpolationOffsetBits :: Word32
-  , -- | #limits-maxFramebufferWidth# @maxFramebufferWidth@ is the maximum width
-    -- for a framebuffer. The @width@ member of the
-    -- 'Vulkan.Core10.Pass.FramebufferCreateInfo' structure /must/ be less than
-    -- or equal to this limit.
-    maxFramebufferWidth :: Word32
-  , -- | #limits-maxFramebufferHeight# @maxFramebufferHeight@ is the maximum
-    -- height for a framebuffer. The @height@ member of the
-    -- 'Vulkan.Core10.Pass.FramebufferCreateInfo' structure /must/ be less than
-    -- or equal to this limit.
-    maxFramebufferHeight :: Word32
-  , -- | #limits-maxFramebufferLayers# @maxFramebufferLayers@ is the maximum
-    -- layer count for a layered framebuffer. The @layers@ member of the
-    -- 'Vulkan.Core10.Pass.FramebufferCreateInfo' structure /must/ be less than
-    -- or equal to this limit.
-    maxFramebufferLayers :: Word32
-  , -- | #limits-framebufferColorSampleCounts# @framebufferColorSampleCounts@ is
-    -- a bitmask1 of
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
-    -- the color sample counts that are supported for all framebuffer color
-    -- attachments with floating- or fixed-point formats. For color attachments
-    -- with integer formats, see
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-framebufferIntegerColorSampleCounts framebufferIntegerColorSampleCounts>.
-    framebufferColorSampleCounts :: SampleCountFlags
-  , -- | #limits-framebufferDepthSampleCounts# @framebufferDepthSampleCounts@ is
-    -- a bitmask1 of
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
-    -- the supported depth sample counts for all framebuffer depth\/stencil
-    -- attachments, when the format includes a depth component.
-    framebufferDepthSampleCounts :: SampleCountFlags
-  , -- | #limits-framebufferStencilSampleCounts# @framebufferStencilSampleCounts@
-    -- is a bitmask1 of
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
-    -- the supported stencil sample counts for all framebuffer depth\/stencil
-    -- attachments, when the format includes a stencil component.
-    framebufferStencilSampleCounts :: SampleCountFlags
-  , -- | #limits-framebufferNoAttachmentsSampleCounts#
-    -- @framebufferNoAttachmentsSampleCounts@ is a bitmask1 of
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
-    -- the supported sample counts for a
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments>.
-    framebufferNoAttachmentsSampleCounts :: SampleCountFlags
-  , -- | #limits-maxColorAttachments# @maxColorAttachments@ is the maximum number
-    -- of color attachments that /can/ be used by a subpass in a render pass.
-    -- The @colorAttachmentCount@ member of the
-    -- 'Vulkan.Core10.Pass.SubpassDescription' or
-    -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'
-    -- structure /must/ be less than or equal to this limit.
-    maxColorAttachments :: Word32
-  , -- | #limits-sampledImageColorSampleCounts# @sampledImageColorSampleCounts@
-    -- is a bitmask1 of
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
-    -- the sample counts supported for all 2D images created with
-    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', @usage@
-    -- containing
-    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', and a
-    -- non-integer color format.
-    sampledImageColorSampleCounts :: SampleCountFlags
-  , -- | #limits-sampledImageIntegerSampleCounts#
-    -- @sampledImageIntegerSampleCounts@ is a bitmask1 of
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
-    -- the sample counts supported for all 2D images created with
-    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', @usage@
-    -- containing
-    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', and an
-    -- integer color format.
-    sampledImageIntegerSampleCounts :: SampleCountFlags
-  , -- | #limits-sampledImageDepthSampleCounts# @sampledImageDepthSampleCounts@
-    -- is a bitmask1 of
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
-    -- the sample counts supported for all 2D images created with
-    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', @usage@
-    -- containing
-    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', and a
-    -- depth format.
-    sampledImageDepthSampleCounts :: SampleCountFlags
-  , -- | #limits-sampledImageStencilSampleCounts#
-    -- @sampledImageStencilSampleCounts@ is a bitmask1 of
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
-    -- the sample counts supported for all 2D images created with
-    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', @usage@
-    -- containing
-    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', and a
-    -- stencil format.
-    sampledImageStencilSampleCounts :: SampleCountFlags
-  , -- | #limits-storageImageSampleCounts# @storageImageSampleCounts@ is a
-    -- bitmask1 of
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
-    -- the sample counts supported for all 2D images created with
-    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and @usage@
-    -- containing
-    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT'.
-    storageImageSampleCounts :: SampleCountFlags
-  , -- | #limits-maxSampleMaskWords# @maxSampleMaskWords@ is the maximum number
-    -- of array elements of a variable decorated with the
-    -- 'Vulkan.Core10.FundamentalTypes.SampleMask' built-in decoration.
-    maxSampleMaskWords :: Word32
-  , -- | #limits-timestampComputeAndGraphics# @timestampComputeAndGraphics@
-    -- specifies support for timestamps on all graphics and compute queues. If
-    -- this limit is set to 'Vulkan.Core10.FundamentalTypes.TRUE', all queues
-    -- that advertise the
-    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or
+-- @pPhysicalDeviceCount@ /must/ point to a variable set by the application
+-- to the number of elements in the @pPhysicalDevices@ array, and on return
+-- the variable is overwritten with the number of handles actually written
+-- to @pPhysicalDevices@. If @pPhysicalDeviceCount@ is less than the number
+-- of physical devices available, at most @pPhysicalDeviceCount@ 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 physical devices were returned.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkEnumeratePhysicalDevices-instance-parameter# @instance@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Instance' handle
+--
+-- -   #VUID-vkEnumeratePhysicalDevices-pPhysicalDeviceCount-parameter#
+--     @pPhysicalDeviceCount@ /must/ be a valid pointer to a @uint32_t@
+--     value
+--
+-- -   #VUID-vkEnumeratePhysicalDevices-pPhysicalDevices-parameter# If the
+--     value referenced by @pPhysicalDeviceCount@ is not @0@, and
+--     @pPhysicalDevices@ is not @NULL@, @pPhysicalDevices@ /must/ be a
+--     valid pointer to an array of @pPhysicalDeviceCount@
+--     'Vulkan.Core10.Handles.PhysicalDevice' handles
+--
+-- == 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'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'
+--
+-- = 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.Instance', 'Vulkan.Core10.Handles.PhysicalDevice'
+enumeratePhysicalDevices :: forall io
+                          . (MonadIO io)
+                         => -- | @instance@ is a handle to a Vulkan instance previously created with
+                            -- 'createInstance'.
+                            Instance
+                         -> io (Result, ("physicalDevices" ::: Vector PhysicalDevice))
+enumeratePhysicalDevices instance' = liftIO . evalContT $ do
+  let cmds = case instance' of Instance{instanceCmds} -> instanceCmds
+  let vkEnumeratePhysicalDevicesPtr = pVkEnumeratePhysicalDevices cmds
+  lift $ unless (vkEnumeratePhysicalDevicesPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkEnumeratePhysicalDevices is null" Nothing Nothing
+  let vkEnumeratePhysicalDevices' = mkVkEnumeratePhysicalDevices vkEnumeratePhysicalDevicesPtr
+  let instance'' = instanceHandle (instance')
+  pPPhysicalDeviceCount <- ContT $ bracket (callocBytes @Word32 4) free
+  r <- lift $ traceAroundEvent "vkEnumeratePhysicalDevices" (vkEnumeratePhysicalDevices'
+                                                               instance''
+                                                               (pPPhysicalDeviceCount)
+                                                               (nullPtr))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pPhysicalDeviceCount <- lift $ peek @Word32 pPPhysicalDeviceCount
+  pPPhysicalDevices <- ContT $ bracket (callocBytes @(Ptr PhysicalDevice_T) ((fromIntegral (pPhysicalDeviceCount)) * 8)) free
+  r' <- lift $ traceAroundEvent "vkEnumeratePhysicalDevices" (vkEnumeratePhysicalDevices'
+                                                                instance''
+                                                                (pPPhysicalDeviceCount)
+                                                                (pPPhysicalDevices))
+  lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
+  pPhysicalDeviceCount' <- lift $ peek @Word32 pPPhysicalDeviceCount
+  pPhysicalDevices' <- lift $ generateM (fromIntegral (pPhysicalDeviceCount')) (\i -> do
+    pPhysicalDevicesElem <- peek @(Ptr PhysicalDevice_T) ((pPPhysicalDevices `advancePtrBytes` (8 * (i)) :: Ptr (Ptr PhysicalDevice_T)))
+    pure $ (\h -> PhysicalDevice h cmds ) pPhysicalDevicesElem)
+  pure $ ((r'), pPhysicalDevices')
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetDeviceProcAddr
+  :: FunPtr (Ptr Device_T -> Ptr CChar -> IO PFN_vkVoidFunction) -> Ptr Device_T -> Ptr CChar -> IO PFN_vkVoidFunction
+
+-- | vkGetDeviceProcAddr - Return a function pointer for a command
+--
+-- = Description
+--
+-- The table below defines the various use cases for 'getDeviceProcAddr'
+-- and expected return value (“fp” is “function pointer”) for each case. A
+-- valid returned function pointer (“fp”) /must/ not be @NULL@.
+--
+-- The returned function pointer is of type
+-- 'Vulkan.Core10.FuncPointers.PFN_vkVoidFunction', and /must/ be cast to
+-- the type of the command being queried before use. The function pointer
+-- /must/ only be called with a dispatchable object (the first parameter)
+-- that is @device@ or a child of @device@.
+--
+-- +------------------+------------------+------------------+
+-- | @device@         | @pName@          | return value     |
+-- +==================+==================+==================+
+-- | @NULL@           | *1               | undefined        |
+-- +------------------+------------------+------------------+
+-- | invalid device   | *1               | undefined        |
+-- +------------------+------------------+------------------+
+-- | device           | @NULL@           | undefined        |
+-- +------------------+------------------+------------------+
+-- | device           | requested core   | fp4              |
+-- |                  | version2         |                  |
+-- |                  | device-level     |                  |
+-- |                  | dispatchable     |                  |
+-- |                  | command3         |                  |
+-- +------------------+------------------+------------------+
+-- | device           | enabled          | fp4              |
+-- |                  | extension        |                  |
+-- |                  | device-level     |                  |
+-- |                  | dispatchable     |                  |
+-- |                  | command3         |                  |
+-- +------------------+------------------+------------------+
+-- | any other case,  |                  | @NULL@           |
+-- | not covered      |                  |                  |
+-- | above            |                  |                  |
+-- +------------------+------------------+------------------+
+--
+-- 'getDeviceProcAddr' behavior
+--
+-- [1]
+--     \"*\" means any representable value for the parameter (including
+--     valid values, invalid values, and @NULL@).
+--
+-- [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. 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
+--     commands.
+--
+-- [4]
+--     The returned function pointer /must/ only be called with a
+--     dispatchable object (the first parameter) that is @device@ or a
+--     child of @device@ e.g. 'Vulkan.Core10.Handles.Device',
+--     'Vulkan.Core10.Handles.Queue', or
+--     'Vulkan.Core10.Handles.CommandBuffer'.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- 'Vulkan.Core10.FuncPointers.PFN_vkVoidFunction',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Device'
+getDeviceProcAddr :: forall io
+                   . (MonadIO io)
+                  => -- | #VUID-vkGetDeviceProcAddr-device-parameter# @device@ /must/ be a valid
+                     -- 'Vulkan.Core10.Handles.Device' handle
+                     Device
+                  -> -- | #VUID-vkGetDeviceProcAddr-pName-parameter# @pName@ /must/ be a
+                     -- null-terminated UTF-8 string
+                     ("name" ::: ByteString)
+                  -> io (PFN_vkVoidFunction)
+getDeviceProcAddr device name = liftIO . evalContT $ do
+  let vkGetDeviceProcAddrPtr = pVkGetDeviceProcAddr (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetDeviceProcAddrPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceProcAddr is null" Nothing Nothing
+  let vkGetDeviceProcAddr' = mkVkGetDeviceProcAddr vkGetDeviceProcAddrPtr
+  pName <- ContT $ useAsCString (name)
+  r <- lift $ traceAroundEvent "vkGetDeviceProcAddr" (vkGetDeviceProcAddr'
+                                                        (deviceHandle (device))
+                                                        pName)
+  pure $ (r)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetInstanceProcAddr
+  :: FunPtr (Ptr Instance_T -> Ptr CChar -> IO PFN_vkVoidFunction) -> Ptr Instance_T -> Ptr CChar -> IO PFN_vkVoidFunction
+
+-- | vkGetInstanceProcAddr - Return a function pointer for a command
+--
+-- = Description
+--
+-- 'getInstanceProcAddr' itself is obtained in a platform- and loader-
+-- specific manner. Typically, the loader library will export this command
+-- as a function symbol, so applications /can/ link against the loader
+-- library, or load it dynamically and look up the symbol using
+-- platform-specific APIs.
+--
+-- The table below defines the various use cases for 'getInstanceProcAddr'
+-- and expected return value (“fp” is “function pointer”) for each case. A
+-- valid returned function pointer (“fp”) /must/ not be @NULL@.
+--
+-- The returned function pointer is of type
+-- 'Vulkan.Core10.FuncPointers.PFN_vkVoidFunction', and /must/ be cast to
+-- the type of the command being queried before use.
+--
+-- +------------------+-----------------------+------------------+
+-- | @instance@       | @pName@               | return value     |
+-- +==================+=======================+==================+
+-- | *1               | @NULL@                | undefined        |
+-- +------------------+-----------------------+------------------+
+-- | invalid          | *1                    | undefined        |
+-- | non-@NULL@       |                       |                  |
+-- | instance         |                       |                  |
+-- +------------------+-----------------------+------------------+
+-- | @NULL@           | /global command/2     | fp               |
+-- +------------------+-----------------------+------------------+
+-- | @NULL@           | 'getInstanceProcAddr' | fp5              |
+-- +------------------+-----------------------+------------------+
+-- | instance         | 'getInstanceProcAddr' | fp               |
+-- +------------------+-----------------------+------------------+
+-- | instance         | core /dispatchable    | fp3              |
+-- |                  | command/              |                  |
+-- +------------------+-----------------------+------------------+
+-- | instance         | enabled instance      | fp3              |
+-- |                  | extension             |                  |
+-- |                  | dispatchable command  |                  |
+-- |                  | for @instance@        |                  |
+-- +------------------+-----------------------+------------------+
+-- | instance         | available device      | fp3              |
+-- |                  | extension4            |                  |
+-- |                  | dispatchable command  |                  |
+-- |                  | for @instance@        |                  |
+-- +------------------+-----------------------+------------------+
+-- | any other case,  |                       | @NULL@           |
+-- | not covered      |                       |                  |
+-- | above            |                       |                  |
+-- +------------------+-----------------------+------------------+
+--
+-- 'getInstanceProcAddr' behavior
+--
+-- [1]
+--     \"*\" means any representable value for the parameter (including
+--     valid values, invalid values, and @NULL@).
+--
+-- [2]
+--     The global commands are:
+--     'Vulkan.Core11.DeviceInitialization.enumerateInstanceVersion',
+--     'Vulkan.Core10.ExtensionDiscovery.enumerateInstanceExtensionProperties',
+--     'Vulkan.Core10.LayerDiscovery.enumerateInstanceLayerProperties', and
+--     'createInstance'. Dispatchable commands are all other commands which
+--     are not global.
+--
+-- [3]
+--     The returned function pointer /must/ only be called with a
+--     dispatchable object (the first parameter) that is @instance@ or a
+--     child of @instance@, e.g. 'Vulkan.Core10.Handles.Instance',
+--     'Vulkan.Core10.Handles.PhysicalDevice',
+--     'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Queue', or
+--     'Vulkan.Core10.Handles.CommandBuffer'.
+--
+-- [4]
+--     An “available device extension” is a device extension supported by
+--     any physical device enumerated by @instance@.
+--
+-- [5]
+--     Starting with Vulkan 1.2, 'getInstanceProcAddr' can resolve itself
+--     with a @NULL@ instance pointer.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetInstanceProcAddr-instance-parameter# If @instance@ is not
+--     @NULL@, @instance@ /must/ be a valid
+--     'Vulkan.Core10.Handles.Instance' handle
+--
+-- -   #VUID-vkGetInstanceProcAddr-pName-parameter# @pName@ /must/ be a
+--     null-terminated UTF-8 string
+--
+-- = See Also
+--
+-- 'Vulkan.Core10.FuncPointers.PFN_vkVoidFunction',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Instance'
+getInstanceProcAddr :: forall io
+                     . (MonadIO io)
+                    => -- | @instance@ is the instance that the function pointer will be compatible
+                       -- with, or @NULL@ for commands not dependent on any instance.
+                       Instance
+                    -> -- | @pName@ is the name of the command to obtain.
+                       ("name" ::: ByteString)
+                    -> io (PFN_vkVoidFunction)
+getInstanceProcAddr instance' name = liftIO . evalContT $ do
+  let vkGetInstanceProcAddrPtr = pVkGetInstanceProcAddr (case instance' of Instance{instanceCmds} -> instanceCmds)
+  lift $ unless (vkGetInstanceProcAddrPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetInstanceProcAddr is null" Nothing Nothing
+  let vkGetInstanceProcAddr' = mkVkGetInstanceProcAddr vkGetInstanceProcAddrPtr
+  pName <- ContT $ useAsCString (name)
+  r <- lift $ traceAroundEvent "vkGetInstanceProcAddr" (vkGetInstanceProcAddr'
+                                                          (instanceHandle (instance'))
+                                                          pName)
+  pure $ (r)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetPhysicalDeviceProperties
+  :: FunPtr (Ptr PhysicalDevice_T -> Ptr PhysicalDeviceProperties -> IO ()) -> Ptr PhysicalDevice_T -> Ptr PhysicalDeviceProperties -> IO ()
+
+-- | vkGetPhysicalDeviceProperties - Returns properties of a physical device
+--
+-- == 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.Handles.PhysicalDevice', 'PhysicalDeviceProperties'
+getPhysicalDeviceProperties :: forall io
+                             . (MonadIO io)
+                            => -- | @physicalDevice@ is the handle to the physical device whose properties
+                               -- will be queried.
+                               --
+                               -- #VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameter#
+                               -- @physicalDevice@ /must/ be a valid
+                               -- 'Vulkan.Core10.Handles.PhysicalDevice' handle
+                               PhysicalDevice
+                            -> io (PhysicalDeviceProperties)
+getPhysicalDeviceProperties physicalDevice = liftIO . evalContT $ do
+  let vkGetPhysicalDevicePropertiesPtr = pVkGetPhysicalDeviceProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
+  lift $ unless (vkGetPhysicalDevicePropertiesPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceProperties is null" Nothing Nothing
+  let vkGetPhysicalDeviceProperties' = mkVkGetPhysicalDeviceProperties vkGetPhysicalDevicePropertiesPtr
+  pPProperties <- ContT (withZeroCStruct @PhysicalDeviceProperties)
+  lift $ traceAroundEvent "vkGetPhysicalDeviceProperties" (vkGetPhysicalDeviceProperties'
+                                                             (physicalDeviceHandle (physicalDevice))
+                                                             (pPProperties))
+  pProperties <- lift $ peekCStruct @PhysicalDeviceProperties pPProperties
+  pure $ (pProperties)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetPhysicalDeviceQueueFamilyProperties
+  :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr QueueFamilyProperties -> IO ()) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr QueueFamilyProperties -> IO ()
+
+-- | vkGetPhysicalDeviceQueueFamilyProperties - Reports properties of the
+-- queues of the specified physical device
+--
+-- = Description
+--
+-- If @pQueueFamilyProperties@ is @NULL@, then the number of queue families
+-- available is returned in @pQueueFamilyPropertyCount@. Implementations
+-- /must/ support at least one queue family. Otherwise,
+-- @pQueueFamilyPropertyCount@ /must/ point to a variable set by the
+-- application to the number of elements in the @pQueueFamilyProperties@
+-- array, and on return the variable is overwritten with the number of
+-- structures actually written to @pQueueFamilyProperties@. If
+-- @pQueueFamilyPropertyCount@ is less than the number of queue families
+-- available, at most @pQueueFamilyPropertyCount@ structures will be
+-- written.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetPhysicalDeviceQueueFamilyProperties-physicalDevice-parameter#
+--     @physicalDevice@ /must/ be a valid
+--     'Vulkan.Core10.Handles.PhysicalDevice' handle
+--
+-- -   #VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyPropertyCount-parameter#
+--     @pQueueFamilyPropertyCount@ /must/ be a valid pointer to a
+--     @uint32_t@ value
+--
+-- -   #VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyProperties-parameter#
+--     If the value referenced by @pQueueFamilyPropertyCount@ is not @0@,
+--     and @pQueueFamilyProperties@ is not @NULL@, @pQueueFamilyProperties@
+--     /must/ be a valid pointer to an array of @pQueueFamilyPropertyCount@
+--     'QueueFamilyProperties' 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.Handles.PhysicalDevice', 'QueueFamilyProperties'
+getPhysicalDeviceQueueFamilyProperties :: forall io
+                                        . (MonadIO io)
+                                       => -- | @physicalDevice@ is the handle to the physical device whose properties
+                                          -- will be queried.
+                                          PhysicalDevice
+                                       -> io (("queueFamilyProperties" ::: Vector QueueFamilyProperties))
+getPhysicalDeviceQueueFamilyProperties physicalDevice = liftIO . evalContT $ do
+  let vkGetPhysicalDeviceQueueFamilyPropertiesPtr = pVkGetPhysicalDeviceQueueFamilyProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
+  lift $ unless (vkGetPhysicalDeviceQueueFamilyPropertiesPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceQueueFamilyProperties is null" Nothing Nothing
+  let vkGetPhysicalDeviceQueueFamilyProperties' = mkVkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyPropertiesPtr
+  let physicalDevice' = physicalDeviceHandle (physicalDevice)
+  pPQueueFamilyPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free
+  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties" (vkGetPhysicalDeviceQueueFamilyProperties'
+                                                                        physicalDevice'
+                                                                        (pPQueueFamilyPropertyCount)
+                                                                        (nullPtr))
+  pQueueFamilyPropertyCount <- lift $ peek @Word32 pPQueueFamilyPropertyCount
+  pPQueueFamilyProperties <- ContT $ bracket (callocBytes @QueueFamilyProperties ((fromIntegral (pQueueFamilyPropertyCount)) * 24)) free
+  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPQueueFamilyProperties `advancePtrBytes` (i * 24) :: Ptr QueueFamilyProperties) . ($ ())) [0..(fromIntegral (pQueueFamilyPropertyCount)) - 1]
+  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties" (vkGetPhysicalDeviceQueueFamilyProperties'
+                                                                        physicalDevice'
+                                                                        (pPQueueFamilyPropertyCount)
+                                                                        ((pPQueueFamilyProperties)))
+  pQueueFamilyPropertyCount' <- lift $ peek @Word32 pPQueueFamilyPropertyCount
+  pQueueFamilyProperties' <- lift $ generateM (fromIntegral (pQueueFamilyPropertyCount')) (\i -> peekCStruct @QueueFamilyProperties (((pPQueueFamilyProperties) `advancePtrBytes` (24 * (i)) :: Ptr QueueFamilyProperties)))
+  pure $ (pQueueFamilyProperties')
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetPhysicalDeviceMemoryProperties
+  :: FunPtr (Ptr PhysicalDevice_T -> Ptr PhysicalDeviceMemoryProperties -> IO ()) -> Ptr PhysicalDevice_T -> Ptr PhysicalDeviceMemoryProperties -> IO ()
+
+-- | vkGetPhysicalDeviceMemoryProperties - Reports memory information for the
+-- specified physical device
+--
+-- == 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.Handles.PhysicalDevice', 'PhysicalDeviceMemoryProperties'
+getPhysicalDeviceMemoryProperties :: forall io
+                                   . (MonadIO io)
+                                  => -- | @physicalDevice@ is the handle to the device to query.
+                                     --
+                                     -- #VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameter#
+                                     -- @physicalDevice@ /must/ be a valid
+                                     -- 'Vulkan.Core10.Handles.PhysicalDevice' handle
+                                     PhysicalDevice
+                                  -> io (PhysicalDeviceMemoryProperties)
+getPhysicalDeviceMemoryProperties physicalDevice = liftIO . evalContT $ do
+  let vkGetPhysicalDeviceMemoryPropertiesPtr = pVkGetPhysicalDeviceMemoryProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
+  lift $ unless (vkGetPhysicalDeviceMemoryPropertiesPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceMemoryProperties is null" Nothing Nothing
+  let vkGetPhysicalDeviceMemoryProperties' = mkVkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryPropertiesPtr
+  pPMemoryProperties <- ContT (withZeroCStruct @PhysicalDeviceMemoryProperties)
+  lift $ traceAroundEvent "vkGetPhysicalDeviceMemoryProperties" (vkGetPhysicalDeviceMemoryProperties'
+                                                                   (physicalDeviceHandle (physicalDevice))
+                                                                   (pPMemoryProperties))
+  pMemoryProperties <- lift $ peekCStruct @PhysicalDeviceMemoryProperties pPMemoryProperties
+  pure $ (pMemoryProperties)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetPhysicalDeviceFeatures
+  :: FunPtr (Ptr PhysicalDevice_T -> Ptr PhysicalDeviceFeatures -> IO ()) -> Ptr PhysicalDevice_T -> Ptr PhysicalDeviceFeatures -> IO ()
+
+-- | vkGetPhysicalDeviceFeatures - Reports capabilities of a physical device
+--
+-- == 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.Handles.PhysicalDevice', 'PhysicalDeviceFeatures'
+getPhysicalDeviceFeatures :: forall io
+                           . (MonadIO io)
+                          => -- | @physicalDevice@ is the physical device from which to query the
+                             -- supported features.
+                             --
+                             -- #VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameter#
+                             -- @physicalDevice@ /must/ be a valid
+                             -- 'Vulkan.Core10.Handles.PhysicalDevice' handle
+                             PhysicalDevice
+                          -> io (PhysicalDeviceFeatures)
+getPhysicalDeviceFeatures physicalDevice = liftIO . evalContT $ do
+  let vkGetPhysicalDeviceFeaturesPtr = pVkGetPhysicalDeviceFeatures (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
+  lift $ unless (vkGetPhysicalDeviceFeaturesPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceFeatures is null" Nothing Nothing
+  let vkGetPhysicalDeviceFeatures' = mkVkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeaturesPtr
+  pPFeatures <- ContT (withZeroCStruct @PhysicalDeviceFeatures)
+  lift $ traceAroundEvent "vkGetPhysicalDeviceFeatures" (vkGetPhysicalDeviceFeatures'
+                                                           (physicalDeviceHandle (physicalDevice))
+                                                           (pPFeatures))
+  pFeatures <- lift $ peekCStruct @PhysicalDeviceFeatures pPFeatures
+  pure $ (pFeatures)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetPhysicalDeviceFormatProperties
+  :: FunPtr (Ptr PhysicalDevice_T -> Format -> Ptr FormatProperties -> IO ()) -> Ptr PhysicalDevice_T -> Format -> Ptr FormatProperties -> IO ()
+
+-- | vkGetPhysicalDeviceFormatProperties - Lists physical device’s format
+-- capabilities
+--
+-- == 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.Format.Format', 'FormatProperties',
+-- 'Vulkan.Core10.Handles.PhysicalDevice'
+getPhysicalDeviceFormatProperties :: forall io
+                                   . (MonadIO io)
+                                  => -- | @physicalDevice@ is the physical device from which to query the format
+                                     -- properties.
+                                     --
+                                     -- #VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameter#
+                                     -- @physicalDevice@ /must/ be a valid
+                                     -- 'Vulkan.Core10.Handles.PhysicalDevice' handle
+                                     PhysicalDevice
+                                  -> -- | @format@ is the format whose properties are queried.
+                                     --
+                                     -- #VUID-vkGetPhysicalDeviceFormatProperties-format-parameter# @format@
+                                     -- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value
+                                     Format
+                                  -> io (FormatProperties)
+getPhysicalDeviceFormatProperties physicalDevice
+                                    format = liftIO . evalContT $ do
+  let vkGetPhysicalDeviceFormatPropertiesPtr = pVkGetPhysicalDeviceFormatProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
+  lift $ unless (vkGetPhysicalDeviceFormatPropertiesPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceFormatProperties is null" Nothing Nothing
+  let vkGetPhysicalDeviceFormatProperties' = mkVkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatPropertiesPtr
+  pPFormatProperties <- ContT (withZeroCStruct @FormatProperties)
+  lift $ traceAroundEvent "vkGetPhysicalDeviceFormatProperties" (vkGetPhysicalDeviceFormatProperties'
+                                                                   (physicalDeviceHandle (physicalDevice))
+                                                                   (format)
+                                                                   (pPFormatProperties))
+  pFormatProperties <- lift $ peekCStruct @FormatProperties pPFormatProperties
+  pure $ (pFormatProperties)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetPhysicalDeviceImageFormatProperties
+  :: FunPtr (Ptr PhysicalDevice_T -> Format -> ImageType -> ImageTiling -> ImageUsageFlags -> ImageCreateFlags -> Ptr ImageFormatProperties -> IO Result) -> Ptr PhysicalDevice_T -> Format -> ImageType -> ImageTiling -> ImageUsageFlags -> ImageCreateFlags -> Ptr ImageFormatProperties -> IO Result
+
+-- | vkGetPhysicalDeviceImageFormatProperties - Lists physical device’s image
+-- format capabilities
+--
+-- = Description
+--
+-- The @format@, @type@, @tiling@, @usage@, and @flags@ parameters
+-- correspond to parameters that would be consumed by
+-- 'Vulkan.Core10.Image.createImage' (as members of
+-- 'Vulkan.Core10.Image.ImageCreateInfo').
+--
+-- If @format@ is not a supported image format, or if the combination of
+-- @format@, @type@, @tiling@, @usage@, and @flags@ is not supported for
+-- images, then 'getPhysicalDeviceImageFormatProperties' returns
+-- 'Vulkan.Core10.Enums.Result.ERROR_FORMAT_NOT_SUPPORTED'.
+--
+-- The limitations on an image format that are reported by
+-- 'getPhysicalDeviceImageFormatProperties' have the following property: if
+-- @usage1@ and @usage2@ of type
+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlags' are such that
+-- the bits set in @usage1@ are a subset of the bits set in @usage2@, and
+-- @flags1@ and @flags2@ of type
+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlags' are such that
+-- the bits set in @flags1@ are a subset of the bits set in @flags2@, then
+-- the limitations for @usage1@ and @flags1@ /must/ be no more strict than
+-- the limitations for @usage2@ and @flags2@, for all values of @format@,
+-- @type@, and @tiling@.
+--
+-- If the @VK_EXT_host_image_copy@ extension 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>]
+--
+--     -   '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'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_FORMAT_NOT_SUPPORTED'
+--
+-- = 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',
+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlags',
+-- 'ImageFormatProperties', 'Vulkan.Core10.Enums.ImageTiling.ImageTiling',
+-- 'Vulkan.Core10.Enums.ImageType.ImageType',
+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlags',
+-- 'Vulkan.Core10.Handles.PhysicalDevice'
+getPhysicalDeviceImageFormatProperties :: forall io
+                                        . (MonadIO io)
+                                       => -- | @physicalDevice@ is the physical device from which to query the image
+                                          -- capabilities.
+                                          --
+                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-physicalDevice-parameter#
+                                          -- @physicalDevice@ /must/ be a valid
+                                          -- 'Vulkan.Core10.Handles.PhysicalDevice' handle
+                                          PhysicalDevice
+                                       -> -- | @format@ is a 'Vulkan.Core10.Enums.Format.Format' value specifying the
+                                          -- image format, corresponding to
+                                          -- 'Vulkan.Core10.Image.ImageCreateInfo'::@format@.
+                                          --
+                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-format-parameter#
+                                          -- @format@ /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value
+                                          Format
+                                       -> -- | @type@ is a 'Vulkan.Core10.Enums.ImageType.ImageType' value specifying
+                                          -- the image type, corresponding to
+                                          -- 'Vulkan.Core10.Image.ImageCreateInfo'::@imageType@.
+                                          --
+                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-type-parameter# @type@
+                                          -- /must/ be a valid 'Vulkan.Core10.Enums.ImageType.ImageType' value
+                                          ImageType
+                                       -> -- | @tiling@ is a 'Vulkan.Core10.Enums.ImageTiling.ImageTiling' value
+                                          -- specifying the image tiling, corresponding to
+                                          -- 'Vulkan.Core10.Image.ImageCreateInfo'::@tiling@.
+                                          --
+                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-02248# @tiling@
+                                          -- /must/ not be
+                                          -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'.
+                                          -- (Use
+                                          -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'
+                                          -- instead)
+                                          --
+                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-parameter#
+                                          -- @tiling@ /must/ be a valid 'Vulkan.Core10.Enums.ImageTiling.ImageTiling'
+                                          -- value
+                                          ImageTiling
+                                       -> -- | @usage@ is a bitmask of
+                                          -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' specifying
+                                          -- the intended usage of the image, corresponding to
+                                          -- 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@.
+                                          --
+                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-usage-parameter# @usage@
+                                          -- /must/ be a valid combination of
+                                          -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' values
+                                          --
+                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-usage-requiredbitmask#
+                                          -- @usage@ /must/ not be @0@
+                                          ImageUsageFlags
+                                       -> -- | @flags@ is a bitmask of
+                                          -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits' specifying
+                                          -- additional parameters of the image, corresponding to
+                                          -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@.
+                                          --
+                                          -- #VUID-vkGetPhysicalDeviceImageFormatProperties-flags-parameter# @flags@
+                                          -- /must/ be a valid combination of
+                                          -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits' values
+                                          ImageCreateFlags
+                                       -> io (ImageFormatProperties)
+getPhysicalDeviceImageFormatProperties physicalDevice
+                                         format
+                                         type'
+                                         tiling
+                                         usage
+                                         flags = liftIO . evalContT $ do
+  let vkGetPhysicalDeviceImageFormatPropertiesPtr = pVkGetPhysicalDeviceImageFormatProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
+  lift $ unless (vkGetPhysicalDeviceImageFormatPropertiesPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceImageFormatProperties is null" Nothing Nothing
+  let vkGetPhysicalDeviceImageFormatProperties' = mkVkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatPropertiesPtr
+  pPImageFormatProperties <- ContT (withZeroCStruct @ImageFormatProperties)
+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceImageFormatProperties" (vkGetPhysicalDeviceImageFormatProperties'
+                                                                             (physicalDeviceHandle (physicalDevice))
+                                                                             (format)
+                                                                             (type')
+                                                                             (tiling)
+                                                                             (usage)
+                                                                             (flags)
+                                                                             (pPImageFormatProperties))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pImageFormatProperties <- lift $ peekCStruct @ImageFormatProperties pPImageFormatProperties
+  pure $ (pImageFormatProperties)
+
+
+-- | VkPhysicalDeviceProperties - Structure specifying physical device
+-- properties
+--
+-- = Description
+--
+-- The value of @apiVersion@ /may/ be different than the version returned
+-- by 'Vulkan.Core11.DeviceInitialization.enumerateInstanceVersion'; either
+-- higher or lower. In such cases, the application /must/ not use
+-- functionality that exceeds the version of Vulkan associated with a given
+-- object. The @pApiVersion@ parameter returned by
+-- 'Vulkan.Core11.DeviceInitialization.enumerateInstanceVersion' is the
+-- version associated with a 'Vulkan.Core10.Handles.Instance' and its
+-- children, except for a 'Vulkan.Core10.Handles.PhysicalDevice' and its
+-- children. 'PhysicalDeviceProperties'::@apiVersion@ is the version
+-- associated with a 'Vulkan.Core10.Handles.PhysicalDevice' and its
+-- children.
+--
+-- The encoding of @driverVersion@ is implementation-defined. It /may/ not
+-- use the same encoding as @apiVersion@. Applications should follow
+-- information from the /vendor/ on how to extract the version information
+-- from @driverVersion@.
+--
+-- On implementations that claim support for the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#roadmap-2022 Roadmap 2022>
+-- profile, the major and minor version expressed by @apiVersion@ /must/ be
+-- at least Vulkan 1.3.
+--
+-- The @vendorID@ and @deviceID@ fields are provided to allow applications
+-- to adapt to device characteristics that are not adequately exposed by
+-- other Vulkan queries.
+--
+-- These /may/ include performance profiles, hardware errata, or other
+-- characteristics.
+--
+-- The /vendor/ identified by @vendorID@ is the entity responsible for the
+-- most salient characteristics of the underlying implementation of the
+-- 'Vulkan.Core10.Handles.PhysicalDevice' being queried.
+--
+-- For example, in the case of a discrete GPU implementation, this /should/
+-- be the GPU chipset vendor. In the case of a hardware accelerator
+-- integrated into a system-on-chip (SoC), this /should/ be the supplier of
+-- the silicon IP used to create the accelerator.
+--
+-- If the vendor has a
+-- <https://pcisig.com/membership/member-companies PCI vendor ID>, the low
+-- 16 bits of @vendorID@ /must/ contain that PCI vendor ID, and the
+-- remaining bits /must/ be zero. Otherwise, the value returned /must/ be a
+-- valid Khronos vendor ID, obtained as described in the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vulkan-styleguide Vulkan Documentation and Extensions: Procedures and Conventions>
+-- document in the section “Registering a Vendor ID with Khronos”. Khronos
+-- vendor IDs are allocated starting at 0x10000, to distinguish them from
+-- the PCI vendor ID namespace. Khronos vendor IDs are symbolically defined
+-- in the 'Vulkan.Core10.Enums.VendorId.VendorId' type.
+--
+-- The vendor is also responsible for the value returned in @deviceID@. If
+-- the implementation is driven primarily by a
+-- <https://pcisig.com/ PCI device> with a
+-- <https://pcisig.com/ PCI device ID>, the low 16 bits of @deviceID@
+-- /must/ contain that PCI device ID, and the remaining bits /must/ be
+-- zero. Otherwise, the choice of what values to return /may/ be dictated
+-- by operating system or platform policies - but /should/ uniquely
+-- identify both the device version and any major configuration options
+-- (for example, core count in the case of multicore devices).
+--
+-- The same device ID /should/ be used for all physical implementations of
+-- that device version and configuration. For example, all uses of a
+-- specific silicon IP GPU version and configuration /should/ use the same
+-- device ID, even if those uses occur in different SoCs.
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'PhysicalDeviceLimits',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',
+-- 'PhysicalDeviceSparseProperties',
+-- 'Vulkan.Core10.Enums.PhysicalDeviceType.PhysicalDeviceType',
+-- 'getPhysicalDeviceProperties'
+data PhysicalDeviceProperties = PhysicalDeviceProperties
+  { -- | @apiVersion@ is the version of Vulkan supported by the device, encoded
+    -- as described in
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.
+    apiVersion :: Word32
+  , -- | @driverVersion@ is the vendor-specified version of the driver.
+    driverVersion :: Word32
+  , -- | @vendorID@ is a unique identifier for the /vendor/ (see below) of the
+    -- physical device.
+    vendorID :: Word32
+  , -- | @deviceID@ is a unique identifier for the physical device among devices
+    -- available from the vendor.
+    deviceID :: Word32
+  , -- | @deviceType@ is a
+    -- 'Vulkan.Core10.Enums.PhysicalDeviceType.PhysicalDeviceType' specifying
+    -- the type of device.
+    deviceType :: PhysicalDeviceType
+  , -- | @deviceName@ is an array of
+    -- 'Vulkan.Core10.APIConstants.MAX_PHYSICAL_DEVICE_NAME_SIZE' @char@
+    -- containing a null-terminated UTF-8 string which is the name of the
+    -- device.
+    deviceName :: ByteString
+  , -- | @pipelineCacheUUID@ is an array of
+    -- 'Vulkan.Core10.APIConstants.UUID_SIZE' @uint8_t@ values representing a
+    -- universally unique identifier for the device.
+    pipelineCacheUUID :: ByteString
+  , -- | @limits@ is the 'PhysicalDeviceLimits' structure specifying
+    -- device-specific limits of the physical device. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits Limits>
+    -- for details.
+    limits :: PhysicalDeviceLimits
+  , -- | @sparseProperties@ is the 'PhysicalDeviceSparseProperties' structure
+    -- specifying various sparse related properties of the physical device. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-physicalprops Sparse Properties>
+    -- for details.
+    sparseProperties :: PhysicalDeviceSparseProperties
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceProperties)
+#endif
+deriving instance Show PhysicalDeviceProperties
+
+instance ToCStruct PhysicalDeviceProperties where
+  withCStruct x f = allocaBytes 824 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceProperties{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (apiVersion)
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (driverVersion)
+    poke ((p `plusPtr` 8 :: Ptr Word32)) (vendorID)
+    poke ((p `plusPtr` 12 :: Ptr Word32)) (deviceID)
+    poke ((p `plusPtr` 16 :: Ptr PhysicalDeviceType)) (deviceType)
+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 20 :: Ptr (FixedArray MAX_PHYSICAL_DEVICE_NAME_SIZE CChar))) (deviceName)
+    pokeFixedLengthByteString ((p `plusPtr` 276 :: Ptr (FixedArray UUID_SIZE Word8))) (pipelineCacheUUID)
+    poke ((p `plusPtr` 296 :: Ptr PhysicalDeviceLimits)) (limits)
+    poke ((p `plusPtr` 800 :: Ptr PhysicalDeviceSparseProperties)) (sparseProperties)
+    f
+  cStructSize = 824
+  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 Word32)) (zero)
+    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 16 :: Ptr PhysicalDeviceType)) (zero)
+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 20 :: Ptr (FixedArray MAX_PHYSICAL_DEVICE_NAME_SIZE CChar))) (mempty)
+    pokeFixedLengthByteString ((p `plusPtr` 276 :: Ptr (FixedArray UUID_SIZE Word8))) (mempty)
+    poke ((p `plusPtr` 296 :: Ptr PhysicalDeviceLimits)) (zero)
+    poke ((p `plusPtr` 800 :: Ptr PhysicalDeviceSparseProperties)) (zero)
+    f
+
+instance FromCStruct PhysicalDeviceProperties where
+  peekCStruct p = do
+    apiVersion <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
+    driverVersion <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
+    vendorID <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
+    deviceID <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
+    deviceType <- peek @PhysicalDeviceType ((p `plusPtr` 16 :: Ptr PhysicalDeviceType))
+    deviceName <- packCString (lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray MAX_PHYSICAL_DEVICE_NAME_SIZE CChar))))
+    pipelineCacheUUID <- peekByteStringFromSizedVectorPtr ((p `plusPtr` 276 :: Ptr (FixedArray UUID_SIZE Word8)))
+    limits <- peekCStruct @PhysicalDeviceLimits ((p `plusPtr` 296 :: Ptr PhysicalDeviceLimits))
+    sparseProperties <- peekCStruct @PhysicalDeviceSparseProperties ((p `plusPtr` 800 :: Ptr PhysicalDeviceSparseProperties))
+    pure $ PhysicalDeviceProperties
+             apiVersion
+             driverVersion
+             vendorID
+             deviceID
+             deviceType
+             deviceName
+             pipelineCacheUUID
+             limits
+             sparseProperties
+
+instance Storable PhysicalDeviceProperties where
+  sizeOf ~_ = 824
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceProperties where
+  zero = PhysicalDeviceProperties
+           zero
+           zero
+           zero
+           zero
+           zero
+           mempty
+           mempty
+           zero
+           zero
+
+
+-- | VkApplicationInfo - Structure specifying application information
+--
+-- = Description
+--
+-- Vulkan 1.0 implementations were required to return
+-- '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@ .
+--
+-- Because Vulkan 1.0 implementations /may/ fail with
+-- 'Vulkan.Core10.Enums.Result.ERROR_INCOMPATIBLE_DRIVER', applications
+-- /should/ determine the version of Vulkan available before calling
+-- 'createInstance'. If the 'getInstanceProcAddr' returns @NULL@ for
+-- 'Vulkan.Core11.DeviceInitialization.enumerateInstanceVersion', it is a
+-- Vulkan 1.0 implementation. Otherwise, the application /can/ call
+-- 'Vulkan.Core11.DeviceInitialization.enumerateInstanceVersion' to
+-- determine the version of Vulkan.
+--
+-- As long as the instance supports at least Vulkan 1.1, an application
+-- /can/ use different versions of Vulkan with an instance than it does
+-- with a device or physical device.
+--
+-- The Khronos validation layers will treat @apiVersion@ as the highest API
+-- version the application targets, and will validate API usage against the
+-- minimum of that version and the implementation version (instance or
+-- device, depending on context). If an application tries to use
+-- functionality from a greater version than this, a validation error will
+-- be triggered.
+--
+-- For example, if the instance supports Vulkan 1.1 and three physical
+-- devices support Vulkan 1.0, Vulkan 1.1, and Vulkan 1.2, respectively,
+-- and if the application sets @apiVersion@ to 1.2, the application /can/
+-- use the following versions of Vulkan:
+--
+-- -   Vulkan 1.0 /can/ be used with the instance and with all physical
+--     devices.
+--
+-- -   Vulkan 1.1 /can/ be used with the instance and with the physical
+--     devices that support Vulkan 1.1 and Vulkan 1.2.
+--
+-- -   Vulkan 1.2 /can/ be used with the physical device that supports
+--     Vulkan 1.2.
+--
+-- If we modify the above example so that the application sets @apiVersion@
+-- to 1.1, then the application /must/ not use Vulkan 1.2 functionality on
+-- the physical device that supports Vulkan 1.2.
+--
+-- Providing a @NULL@ 'InstanceCreateInfo'::@pApplicationInfo@ or providing
+-- an @apiVersion@ of 0 is equivalent to providing an @apiVersion@ of
+-- @VK_MAKE_API_VERSION(0,1,0,0)@.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkApplicationInfo-apiVersion-04010# If @apiVersion@ is not
+--     @0@, then it /must/ be greater than or equal to
+--     'Vulkan.Core10.API_VERSION_1_0'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkApplicationInfo-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_APPLICATION_INFO'
+--
+-- -   #VUID-VkApplicationInfo-pNext-pNext# @pNext@ /must/ be @NULL@
+--
+-- -   #VUID-VkApplicationInfo-pApplicationName-parameter# If
+--     @pApplicationName@ is not @NULL@, @pApplicationName@ /must/ be a
+--     null-terminated UTF-8 string
+--
+-- -   #VUID-VkApplicationInfo-pEngineName-parameter# If @pEngineName@ is
+--     not @NULL@, @pEngineName@ /must/ be a null-terminated UTF-8 string
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'InstanceCreateInfo', 'Vulkan.Core10.Enums.StructureType.StructureType'
+data ApplicationInfo = ApplicationInfo
+  { -- | @pApplicationName@ is @NULL@ or is a pointer to a null-terminated UTF-8
+    -- string containing the name of the application.
+    applicationName :: Maybe ByteString
+  , -- | @applicationVersion@ is an unsigned integer variable containing the
+    -- developer-supplied version number of the application.
+    applicationVersion :: Word32
+  , -- | @pEngineName@ is @NULL@ or is a pointer to a null-terminated UTF-8
+    -- string containing the name of the engine (if any) used to create the
+    -- application.
+    engineName :: Maybe ByteString
+  , -- | @engineVersion@ is an unsigned integer variable containing the
+    -- developer-supplied version number of the engine used to create the
+    -- application.
+    engineVersion :: Word32
+  , -- | @apiVersion@ /must/ be the highest version of Vulkan that the
+    -- 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. The variant version of the instance /must/
+    -- match that requested in @apiVersion@.
+    apiVersion :: Word32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ApplicationInfo)
+#endif
+deriving instance Show ApplicationInfo
+
+instance ToCStruct ApplicationInfo where
+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ApplicationInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_APPLICATION_INFO)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    pApplicationName'' <- case (applicationName) of
+      Nothing -> pure nullPtr
+      Just j -> ContT $ useAsCString (j)
+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr CChar))) pApplicationName''
+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (applicationVersion)
+    pEngineName'' <- case (engineName) of
+      Nothing -> pure nullPtr
+      Just j -> ContT $ useAsCString (j)
+    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr CChar))) pEngineName''
+    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (engineVersion)
+    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) (apiVersion)
+    lift $ f
+  cStructSize = 48
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_APPLICATION_INFO)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct ApplicationInfo where
+  peekCStruct p = do
+    pApplicationName <- peek @(Ptr CChar) ((p `plusPtr` 16 :: Ptr (Ptr CChar)))
+    pApplicationName' <- maybePeek (\j -> packCString (j)) pApplicationName
+    applicationVersion <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    pEngineName <- peek @(Ptr CChar) ((p `plusPtr` 32 :: Ptr (Ptr CChar)))
+    pEngineName' <- maybePeek (\j -> packCString (j)) pEngineName
+    engineVersion <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
+    apiVersion <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))
+    pure $ ApplicationInfo
+             pApplicationName'
+             applicationVersion
+             pEngineName'
+             engineVersion
+             apiVersion
+
+instance Zero ApplicationInfo where
+  zero = ApplicationInfo
+           Nothing
+           zero
+           Nothing
+           zero
+           zero
+
+
+-- | VkInstanceCreateInfo - Structure specifying parameters of a newly
+-- created instance
+--
+-- = Description
+--
+-- To capture events that occur while creating or destroying an instance,
+-- an application /can/ link a
+-- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportCallbackCreateInfoEXT'
+-- structure or a
+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT'
+-- structure to the @pNext@ element of the 'InstanceCreateInfo' structure
+-- given to 'createInstance'. This callback is only valid for the duration
+-- of the 'createInstance' and the 'destroyInstance' call. Use
+-- 'Vulkan.Extensions.VK_EXT_debug_report.createDebugReportCallbackEXT' or
+-- 'Vulkan.Extensions.VK_EXT_debug_utils.createDebugUtilsMessengerEXT' to
+-- create persistent callback objects.
+--
+-- An application can add additional drivers by including the
+-- 'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingListLUNARG'
+-- struct to the @pNext@ element of the 'InstanceCreateInfo' structure
+-- given to 'createInstance'.
+--
+-- 'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingListLUNARG'
+-- allows applications to ship drivers with themselves. Only drivers that
+-- are designed to work with it should be used, such as drivers that
+-- implement Vulkan in software or that implement Vulkan by translating it
+-- to a different API. Any driver that requires installation should not be
+-- used, such as hardware drivers.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkInstanceCreateInfo-pNext-04925# If the @pNext@ chain of
+--     'InstanceCreateInfo' includes a
+--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportCallbackCreateInfoEXT'
+--     structure, the list of enabled extensions in
+--     @ppEnabledExtensionNames@ /must/ contain @VK_EXT_debug_report@
+--
+-- -   #VUID-VkInstanceCreateInfo-pNext-04926# If the @pNext@ chain of
+--     'InstanceCreateInfo' includes a
+--     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT'
+--     structure, the list of enabled extensions in
+--     @ppEnabledExtensionNames@ /must/ contain @VK_EXT_debug_utils@
+--
+-- -   #VUID-VkInstanceCreateInfo-pNext-06779# If the @pNext@ chain
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'
+--     structure, its @exportObjectType@ member /must/ be either
+--     'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT'
+--
+-- -   #VUID-VkInstanceCreateInfo-flags-06559# If @flags@ has the
+--     'Vulkan.Core10.Enums.InstanceCreateFlagBits.INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR'
+--     bit set, the list of enabled extensions in @ppEnabledExtensionNames@
+--     /must/ contain @VK_KHR_portability_enumeration@
+--
+-- -   #VUID-VkInstanceCreateInfo-pNext-09400# If the @pNext@ chain of
+--     'InstanceCreateInfo' includes a
+--     'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingListLUNARG'
+--     structure, the list of enabled extensions in
+--     @ppEnabledExtensionNames@ /must/ contain
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_LUNARG_direct_driver_loading VK_LUNARG_direct_driver_loading>
+--
+-- -   #VUID-VkInstanceCreateInfo-pNext-10242# If the @pNext@ chain of
+--     'InstanceCreateInfo' includes a
+--     'Vulkan.Extensions.VK_EXT_layer_settings.LayerSettingsCreateInfoEXT'
+--     structure, the list of enabled extensions in
+--     @ppEnabledExtensionNames@ /must/ contain
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>
+--
+-- -   #VUID-VkInstanceCreateInfo-pNext-10243# If the @pNext@ chain of
+--     'InstanceCreateInfo' includes a
+--     'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT'
+--     structure, the list of enabled extensions in
+--     @ppEnabledExtensionNames@ /must/ contain
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_features VK_EXT_validation_features>
+--
+-- -   #VUID-VkInstanceCreateInfo-pNext-10244# If the @pNext@ chain of
+--     'InstanceCreateInfo' includes a
+--     'Vulkan.Extensions.VK_EXT_validation_flags.ValidationFlagsEXT'
+--     structure, the list of enabled extensions in
+--     @ppEnabledExtensionNames@ /must/ contain
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_flags VK_EXT_validation_flags>
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkInstanceCreateInfo-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INSTANCE_CREATE_INFO'
+--
+-- -   #VUID-VkInstanceCreateInfo-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_report.DebugReportCallbackCreateInfoEXT',
+--     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT',
+--     'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingListLUNARG',
+--     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT',
+--     'Vulkan.Extensions.VK_EXT_layer_settings.LayerSettingsCreateInfoEXT',
+--     'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT',
+--     or 'Vulkan.Extensions.VK_EXT_validation_flags.ValidationFlagsEXT'
+--
+-- -   #VUID-VkInstanceCreateInfo-sType-unique# The @sType@ value of each
+--     struct in the @pNext@ chain /must/ be unique, with the exception of
+--     structures of type
+--     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT',
+--     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT',
+--     or
+--     'Vulkan.Extensions.VK_EXT_layer_settings.LayerSettingsCreateInfoEXT'
+--
+-- -   #VUID-VkInstanceCreateInfo-flags-parameter# @flags@ /must/ be a
+--     valid combination of
+--     'Vulkan.Core10.Enums.InstanceCreateFlagBits.InstanceCreateFlagBits'
+--     values
+--
+-- -   #VUID-VkInstanceCreateInfo-pApplicationInfo-parameter# If
+--     @pApplicationInfo@ is not @NULL@, @pApplicationInfo@ /must/ be a
+--     valid pointer to a valid 'ApplicationInfo' structure
+--
+-- -   #VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameter# If
+--     @enabledLayerCount@ is not @0@, @ppEnabledLayerNames@ /must/ be a
+--     valid pointer to an array of @enabledLayerCount@ null-terminated
+--     UTF-8 strings
+--
+-- -   #VUID-VkInstanceCreateInfo-ppEnabledExtensionNames-parameter# If
+--     @enabledExtensionCount@ is not @0@, @ppEnabledExtensionNames@ /must/
+--     be a valid pointer to an array of @enabledExtensionCount@
+--     null-terminated UTF-8 strings
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'ApplicationInfo',
+-- 'Vulkan.Core10.Enums.InstanceCreateFlagBits.InstanceCreateFlags',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'createInstance'
+data InstanceCreateInfo (es :: [Type]) = InstanceCreateInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.InstanceCreateFlagBits.InstanceCreateFlagBits'
+    -- indicating the behavior of the instance.
+    flags :: InstanceCreateFlags
+  , -- | @pApplicationInfo@ is @NULL@ or a pointer to a 'ApplicationInfo'
+    -- structure. If not @NULL@, this information helps implementations
+    -- recognize behavior inherent to classes of applications.
+    -- 'ApplicationInfo' is defined in detail below.
+    applicationInfo :: Maybe ApplicationInfo
+  , -- | @ppEnabledLayerNames@ is a pointer to an array of @enabledLayerCount@
+    -- null-terminated UTF-8 strings containing the names of layers to enable
+    -- for the created instance. The layers are loaded in the order they are
+    -- listed in this array, with the first array element being the closest to
+    -- the application, and the last array element being the closest to the
+    -- driver. See the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-layers>
+    -- section for further details.
+    enabledLayerNames :: Vector ByteString
+  , -- | @ppEnabledExtensionNames@ is a pointer to an array of
+    -- @enabledExtensionCount@ null-terminated UTF-8 strings containing the
+    -- names of extensions to enable.
+    enabledExtensionNames :: Vector ByteString
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (InstanceCreateInfo (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (InstanceCreateInfo es)
+
+instance Extensible InstanceCreateInfo where
+  extensibleTypeName = "InstanceCreateInfo"
+  setNext InstanceCreateInfo{..} next' = InstanceCreateInfo{next = next', ..}
+  getNext InstanceCreateInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends InstanceCreateInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @DirectDriverLoadingListLUNARG = Just f
+    | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @DebugUtilsMessengerCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @LayerSettingsCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @ValidationFeaturesEXT = Just f
+    | Just Refl <- eqT @e @ValidationFlagsEXT = Just f
+    | Just Refl <- eqT @e @DebugReportCallbackCreateInfoEXT = Just f
+    | otherwise = Nothing
+
+instance ( Extendss InstanceCreateInfo es
+         , PokeChain es ) => ToCStruct (InstanceCreateInfo es) where
+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p InstanceCreateInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr InstanceCreateFlags)) (flags)
+    pApplicationInfo'' <- case (applicationInfo) of
+      Nothing -> pure nullPtr
+      Just j -> ContT $ withCStruct (j)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ApplicationInfo))) pApplicationInfo''
+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (enabledLayerNames)) :: Word32))
+    pPpEnabledLayerNames' <- ContT $ allocaBytes @(Ptr CChar) ((Data.Vector.length (enabledLayerNames)) * 8)
+    Data.Vector.imapM_ (\i e -> do
+      ppEnabledLayerNames'' <- ContT $ useAsCString (e)
+      lift $ poke (pPpEnabledLayerNames' `plusPtr` (8 * (i)) :: Ptr (Ptr CChar)) ppEnabledLayerNames'') (enabledLayerNames)
+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (Ptr CChar)))) (pPpEnabledLayerNames')
+    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (enabledExtensionNames)) :: Word32))
+    pPpEnabledExtensionNames' <- ContT $ allocaBytes @(Ptr CChar) ((Data.Vector.length (enabledExtensionNames)) * 8)
+    Data.Vector.imapM_ (\i e -> do
+      ppEnabledExtensionNames'' <- ContT $ useAsCString (e)
+      lift $ poke (pPpEnabledExtensionNames' `plusPtr` (8 * (i)) :: Ptr (Ptr CChar)) ppEnabledExtensionNames'') (enabledExtensionNames)
+    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (Ptr CChar)))) (pPpEnabledExtensionNames')
+    lift $ f
+  cStructSize = 64
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ f
+
+instance ( Extendss InstanceCreateInfo es
+         , PeekChain es ) => FromCStruct (InstanceCreateInfo es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    flags <- peek @InstanceCreateFlags ((p `plusPtr` 16 :: Ptr InstanceCreateFlags))
+    pApplicationInfo <- peek @(Ptr ApplicationInfo) ((p `plusPtr` 24 :: Ptr (Ptr ApplicationInfo)))
+    pApplicationInfo' <- maybePeek (\j -> peekCStruct @ApplicationInfo (j)) pApplicationInfo
+    enabledLayerCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
+    ppEnabledLayerNames <- peek @(Ptr (Ptr CChar)) ((p `plusPtr` 40 :: Ptr (Ptr (Ptr CChar))))
+    ppEnabledLayerNames' <- generateM (fromIntegral enabledLayerCount) (\i -> packCString =<< peek ((ppEnabledLayerNames `advancePtrBytes` (8 * (i)) :: Ptr (Ptr CChar))))
+    enabledExtensionCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
+    ppEnabledExtensionNames <- peek @(Ptr (Ptr CChar)) ((p `plusPtr` 56 :: Ptr (Ptr (Ptr CChar))))
+    ppEnabledExtensionNames' <- generateM (fromIntegral enabledExtensionCount) (\i -> packCString =<< peek ((ppEnabledExtensionNames `advancePtrBytes` (8 * (i)) :: Ptr (Ptr CChar))))
+    pure $ InstanceCreateInfo
+             next
+             flags
+             pApplicationInfo'
+             ppEnabledLayerNames'
+             ppEnabledExtensionNames'
+
+instance es ~ '[] => Zero (InstanceCreateInfo es) where
+  zero = InstanceCreateInfo
+           ()
+           zero
+           Nothing
+           mempty
+           mempty
+
+
+-- | VkQueueFamilyProperties - Structure providing information about a queue
+-- family
+--
+-- = Description
+--
+-- The value returned in @minImageTransferGranularity@ has a unit of
+-- compressed texel blocks for images having a block-compressed format, and
+-- a unit of texels otherwise.
+--
+-- Possible values of @minImageTransferGranularity@ are:
+--
+-- -   (0,0,0) specifies that only whole mip levels /must/ be transferred
+--     using the image transfer operations on the corresponding queues. In
+--     this case, the following restrictions apply to all offset and extent
+--     parameters of image transfer operations:
+--
+--     -   The @x@, @y@, and @z@ members of a
+--         'Vulkan.Core10.FundamentalTypes.Offset3D' parameter /must/
+--         always be zero.
+--
+--     -   The @width@, @height@, and @depth@ members of a
+--         'Vulkan.Core10.FundamentalTypes.Extent3D' parameter /must/
+--         always match the width, height, and depth of the image
+--         subresource corresponding to the parameter, respectively.
+--
+-- -   (Ax, Ay, Az) where Ax, Ay, and Az are all integer powers of two. In
+--     this case the following restrictions apply to all image transfer
+--     operations:
+--
+--     -   @x@, @y@, and @z@ of a 'Vulkan.Core10.FundamentalTypes.Offset3D'
+--         parameter /must/ be integer multiples of Ax, Ay, and Az,
+--         respectively.
+--
+--     -   @width@ of a 'Vulkan.Core10.FundamentalTypes.Extent3D' parameter
+--         /must/ be an integer multiple of Ax, or else @x@ + @width@
+--         /must/ equal the width of the image subresource corresponding to
+--         the parameter.
+--
+--     -   @height@ of a 'Vulkan.Core10.FundamentalTypes.Extent3D'
+--         parameter /must/ be an integer multiple of Ay, or else @y@ +
+--         @height@ /must/ equal the height of the image subresource
+--         corresponding to the parameter.
+--
+--     -   @depth@ of a 'Vulkan.Core10.FundamentalTypes.Extent3D' parameter
+--         /must/ be an integer multiple of Az, or else @z@ + @depth@
+--         /must/ equal the depth of the image subresource corresponding to
+--         the parameter.
+--
+--     -   If the format of the image corresponding to the parameters is
+--         one of the block-compressed formats then for the purposes of the
+--         above calculations the granularity /must/ be scaled up by the
+--         compressed texel block dimensions.
+--
+-- Queues supporting graphics and\/or compute operations /must/ report
+-- (1,1,1) in @minImageTransferGranularity@, meaning that there are no
+-- additional restrictions on the granularity of image transfer operations
+-- for these queues. Other queues supporting image transfer operations are
+-- only /required/ to support whole mip level transfers, thus
+-- @minImageTransferGranularity@ for queues belonging to such queue
+-- families /may/ be (0,0,0).
+--
+-- The
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device Device Memory>
+-- section describes memory properties queried from the physical device.
+--
+-- For physical device feature queries see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features Features>
+-- chapter.
+--
+-- = 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',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2',
+-- 'Vulkan.Core10.Enums.QueueFlagBits.QueueFlags',
+-- 'getPhysicalDeviceQueueFamilyProperties'
+data QueueFamilyProperties = QueueFamilyProperties
+  { -- | @queueFlags@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.QueueFlagBits.QueueFlagBits' indicating
+    -- capabilities of the queues in this queue family.
+    queueFlags :: QueueFlags
+  , -- | @queueCount@ is the unsigned integer count of queues in this queue
+    -- family. Each queue family /must/ support at least one queue.
+    queueCount :: Word32
+  , -- | @timestampValidBits@ is the unsigned integer count of meaningful bits in
+    -- the timestamps written via
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'
+    -- or 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp'. The valid
+    -- range for the count is 36 to 64 bits, or a value of 0, indicating no
+    -- support for timestamps. Bits outside the valid range are guaranteed to
+    -- be zeros.
+    timestampValidBits :: Word32
+  , -- | @minImageTransferGranularity@ is the minimum granularity supported for
+    -- image transfer operations on the queues in this queue family.
+    minImageTransferGranularity :: Extent3D
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (QueueFamilyProperties)
+#endif
+deriving instance Show QueueFamilyProperties
+
+instance ToCStruct QueueFamilyProperties where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p QueueFamilyProperties{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr QueueFlags)) (queueFlags)
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (queueCount)
+    poke ((p `plusPtr` 8 :: Ptr Word32)) (timestampValidBits)
+    poke ((p `plusPtr` 12 :: Ptr Extent3D)) (minImageTransferGranularity)
+    f
+  cStructSize = 24
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 12 :: Ptr Extent3D)) (zero)
+    f
+
+instance FromCStruct QueueFamilyProperties where
+  peekCStruct p = do
+    queueFlags <- peek @QueueFlags ((p `plusPtr` 0 :: Ptr QueueFlags))
+    queueCount <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
+    timestampValidBits <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
+    minImageTransferGranularity <- peekCStruct @Extent3D ((p `plusPtr` 12 :: Ptr Extent3D))
+    pure $ QueueFamilyProperties
+             queueFlags
+             queueCount
+             timestampValidBits
+             minImageTransferGranularity
+
+instance Storable QueueFamilyProperties where
+  sizeOf ~_ = 24
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero QueueFamilyProperties where
+  zero = QueueFamilyProperties
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceMemoryProperties - Structure specifying physical device
+-- memory properties
+--
+-- = Description
+--
+-- The 'PhysicalDeviceMemoryProperties' structure describes a number of
+-- /memory heaps/ as well as a number of /memory types/ that /can/ be used
+-- to access memory allocated in those heaps. Each heap describes a memory
+-- resource of a particular size, and each memory type describes a set of
+-- memory properties (e.g. host cached vs. uncached) that /can/ be used
+-- with a given memory heap. Allocations using a particular memory type
+-- will consume resources from the heap indicated by that memory type’s
+-- heap index. More than one memory type /may/ share each heap, and the
+-- heaps and memory types provide a mechanism to advertise an accurate size
+-- of the physical memory resources while allowing the memory to be used
+-- with a variety of different properties.
+--
+-- The number of memory heaps is given by @memoryHeapCount@ and is less
+-- than or equal to 'Vulkan.Core10.APIConstants.MAX_MEMORY_HEAPS'. Each
+-- heap is described by an element of the @memoryHeaps@ array as a
+-- 'MemoryHeap' structure. The number of memory types available across all
+-- memory heaps is given by @memoryTypeCount@ and is less than or equal to
+-- 'Vulkan.Core10.APIConstants.MAX_MEMORY_TYPES'. Each memory type is
+-- described by an element of the @memoryTypes@ array as a 'MemoryType'
+-- structure.
+--
+-- At least one heap /must/ include
+-- 'Vulkan.Core10.Enums.MemoryHeapFlagBits.MEMORY_HEAP_DEVICE_LOCAL_BIT' in
+-- 'MemoryHeap'::@flags@. If there are multiple heaps that all have similar
+-- performance characteristics, they /may/ all include
+-- 'Vulkan.Core10.Enums.MemoryHeapFlagBits.MEMORY_HEAP_DEVICE_LOCAL_BIT'.
+-- In a unified memory architecture (UMA) system there is often only a
+-- single memory heap which is considered to be equally “local” to the host
+-- and to the device, and such an implementation /must/ advertise the heap
+-- as device-local.
+--
+-- Each memory type returned by 'getPhysicalDeviceMemoryProperties' /must/
+-- have its @propertyFlags@ set to one of the following values:
+--
+-- -   0
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_PROTECTED_BIT'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_PROTECTED_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_CACHED_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD'
+--
+-- -   'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+--     |
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV'
+--
+-- There /must/ be at least one memory type with both the
+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+-- and
+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
+-- bits set in its @propertyFlags@. There /must/ be at least one memory
+-- type with the
+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+-- bit set in its @propertyFlags@. If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceCoherentMemory deviceCoherentMemory>
+-- feature is enabled, there /must/ be at least one memory type with the
+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
+-- bit set in its @propertyFlags@.
+--
+-- For each pair of elements __X__ and __Y__ returned in @memoryTypes@,
+-- __X__ /must/ be placed at a lower index position than __Y__ if:
+--
+-- -   the set of bit flags returned in the @propertyFlags@ member of __X__
+--     is a strict subset of the set of bit flags returned in the
+--     @propertyFlags@ member of __Y__; or
+--
+-- -   the @propertyFlags@ members of __X__ and __Y__ are equal, and __X__
+--     belongs to a memory heap with greater performance (as determined in
+--     an implementation-specific manner) ; or
+--
+-- -   the @propertyFlags@ members of __Y__ includes
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'
+--     or
+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD'
+--     and __X__ does not
+--
+-- There is no ordering requirement between __X__ and __Y__ elements for
+-- the case their @propertyFlags@ members are not in a subset relation.
+-- That potentially allows more than one possible way to order the same set
+-- of memory types. Notice that the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-bitmask-list list of all allowed memory property flag combinations>
+-- is written in a valid order. But if instead
+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'
+-- was before
+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT'
+-- |
+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT',
+-- the list would still be in a valid order.
+--
+-- There may be a performance penalty for using device coherent or uncached
+-- device memory types, and using these accidentally is undesirable. In
+-- order to avoid this, memory types with these properties always appear at
+-- the end of the list; but are subject to the same rules otherwise.
+--
+-- This ordering requirement enables applications to use a simple search
+-- loop to select the desired memory type along the lines of:
+--
+-- > // Find a memory in `memoryTypeBitsRequirement` that includes all of `requiredProperties`
+-- > int32_t findProperties(const VkPhysicalDeviceMemoryProperties* pMemoryProperties,
+-- >                        uint32_t memoryTypeBitsRequirement,
+-- >                        VkMemoryPropertyFlags requiredProperties) {
+-- >     const uint32_t memoryCount = pMemoryProperties->memoryTypeCount;
+-- >     for (uint32_t memoryIndex = 0; memoryIndex < memoryCount; ++memoryIndex) {
+-- >         const uint32_t memoryTypeBits = (1 << memoryIndex);
+-- >         const bool isRequiredMemoryType = memoryTypeBitsRequirement & memoryTypeBits;
+-- >
+-- >         const VkMemoryPropertyFlags properties =
+-- >             pMemoryProperties->memoryTypes[memoryIndex].propertyFlags;
+-- >         const bool hasRequiredProperties =
+-- >             (properties & requiredProperties) == requiredProperties;
+-- >
+-- >         if (isRequiredMemoryType && hasRequiredProperties)
+-- >             return static_cast<int32_t>(memoryIndex);
+-- >     }
+-- >
+-- >     // failed to find memory type
+-- >     return -1;
+-- > }
+-- >
+-- > // Try to find an optimal memory type, or if it does not exist try fallback memory type
+-- > // `device` is the VkDevice
+-- > // `image` is the VkImage that requires memory to be bound
+-- > // `memoryProperties` properties as returned by vkGetPhysicalDeviceMemoryProperties
+-- > // `requiredProperties` are the property flags that must be present
+-- > // `optimalProperties` are the property flags that are preferred by the application
+-- > VkMemoryRequirements memoryRequirements;
+-- > vkGetImageMemoryRequirements(device, image, &memoryRequirements);
+-- > int32_t memoryType =
+-- >     findProperties(&memoryProperties, memoryRequirements.memoryTypeBits, optimalProperties);
+-- > if (memoryType == -1) // not found; try fallback properties
+-- >     memoryType =
+-- >         findProperties(&memoryProperties, memoryRequirements.memoryTypeBits, requiredProperties);
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'MemoryHeap', 'MemoryType',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceMemoryProperties2',
+-- 'getPhysicalDeviceMemoryProperties'
+data PhysicalDeviceMemoryProperties = PhysicalDeviceMemoryProperties
+  { -- | @memoryTypeCount@ is the number of valid elements in the @memoryTypes@
+    -- array.
+    memoryTypeCount :: Word32
+  , -- | @memoryTypes@ is an array of
+    -- 'Vulkan.Core10.APIConstants.MAX_MEMORY_TYPES' 'MemoryType' structures
+    -- describing the /memory types/ that /can/ be used to access memory
+    -- allocated from the heaps specified by @memoryHeaps@.
+    memoryTypes :: Vector MemoryType
+  , -- | @memoryHeapCount@ is the number of valid elements in the @memoryHeaps@
+    -- array.
+    memoryHeapCount :: Word32
+  , -- | @memoryHeaps@ is an array of
+    -- 'Vulkan.Core10.APIConstants.MAX_MEMORY_HEAPS' 'MemoryHeap' structures
+    -- describing the /memory heaps/ from which memory /can/ be allocated.
+    memoryHeaps :: Vector MemoryHeap
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceMemoryProperties)
+#endif
+deriving instance Show PhysicalDeviceMemoryProperties
+
+instance ToCStruct PhysicalDeviceMemoryProperties where
+  withCStruct x f = allocaBytes 520 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceMemoryProperties{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (memoryTypeCount)
+    unless ((Data.Vector.length $ (memoryTypes)) <= MAX_MEMORY_TYPES) $
+      throwIO $ IOError Nothing InvalidArgument "" "memoryTypes is too long, a maximum of MAX_MEMORY_TYPES elements are allowed" Nothing Nothing
+    Data.Vector.imapM_ (\i e -> poke ((lowerArrayPtr ((p `plusPtr` 4 :: Ptr (FixedArray MAX_MEMORY_TYPES MemoryType)))) `plusPtr` (8 * (i)) :: Ptr MemoryType) (e)) (memoryTypes)
+    poke ((p `plusPtr` 260 :: Ptr Word32)) (memoryHeapCount)
+    unless ((Data.Vector.length $ (memoryHeaps)) <= MAX_MEMORY_HEAPS) $
+      throwIO $ IOError Nothing InvalidArgument "" "memoryHeaps is too long, a maximum of MAX_MEMORY_HEAPS elements are allowed" Nothing Nothing
+    Data.Vector.imapM_ (\i e -> poke ((lowerArrayPtr ((p `plusPtr` 264 :: Ptr (FixedArray MAX_MEMORY_HEAPS MemoryHeap)))) `plusPtr` (16 * (i)) :: Ptr MemoryHeap) (e)) (memoryHeaps)
+    f
+  cStructSize = 520
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 260 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct PhysicalDeviceMemoryProperties where
+  peekCStruct p = do
+    memoryTypeCount <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
+    memoryTypes <- generateM (MAX_MEMORY_TYPES) (\i -> peekCStruct @MemoryType (((lowerArrayPtr @MemoryType ((p `plusPtr` 4 :: Ptr (FixedArray MAX_MEMORY_TYPES MemoryType)))) `advancePtrBytes` (8 * (i)) :: Ptr MemoryType)))
+    memoryHeapCount <- peek @Word32 ((p `plusPtr` 260 :: Ptr Word32))
+    memoryHeaps <- generateM (MAX_MEMORY_HEAPS) (\i -> peekCStruct @MemoryHeap (((lowerArrayPtr @MemoryHeap ((p `plusPtr` 264 :: Ptr (FixedArray MAX_MEMORY_HEAPS MemoryHeap)))) `advancePtrBytes` (16 * (i)) :: Ptr MemoryHeap)))
+    pure $ PhysicalDeviceMemoryProperties
+             memoryTypeCount memoryTypes memoryHeapCount memoryHeaps
+
+instance Storable PhysicalDeviceMemoryProperties where
+  sizeOf ~_ = 520
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceMemoryProperties where
+  zero = PhysicalDeviceMemoryProperties
+           zero
+           mempty
+           zero
+           mempty
+
+
+-- | VkMemoryType - Structure specifying memory type
+--
+-- = 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.MemoryPropertyFlagBits.MemoryPropertyFlags',
+-- 'PhysicalDeviceMemoryProperties'
+data MemoryType = MemoryType
+  { -- | @propertyFlags@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MemoryPropertyFlagBits' of
+    -- properties for this memory type.
+    propertyFlags :: MemoryPropertyFlags
+  , -- | @heapIndex@ describes which memory heap this memory type corresponds to,
+    -- and /must/ be less than @memoryHeapCount@ from the
+    -- 'PhysicalDeviceMemoryProperties' structure.
+    heapIndex :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (MemoryType)
+#endif
+deriving instance Show MemoryType
+
+instance ToCStruct MemoryType where
+  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p MemoryType{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr MemoryPropertyFlags)) (propertyFlags)
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (heapIndex)
+    f
+  cStructSize = 8
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct MemoryType where
+  peekCStruct p = do
+    propertyFlags <- peek @MemoryPropertyFlags ((p `plusPtr` 0 :: Ptr MemoryPropertyFlags))
+    heapIndex <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
+    pure $ MemoryType
+             propertyFlags heapIndex
+
+instance Storable MemoryType where
+  sizeOf ~_ = 8
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero MemoryType where
+  zero = MemoryType
+           zero
+           zero
+
+
+-- | VkMemoryHeap - Structure specifying a memory heap
+--
+-- = 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.Enums.MemoryHeapFlagBits.MemoryHeapFlags',
+-- 'PhysicalDeviceMemoryProperties'
+data MemoryHeap = MemoryHeap
+  { -- | @size@ is the total memory size in bytes in the heap.
+    size :: DeviceSize
+  , -- | @flags@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.MemoryHeapFlagBits.MemoryHeapFlagBits' specifying
+    -- attribute flags for the heap.
+    flags :: MemoryHeapFlags
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (MemoryHeap)
+#endif
+deriving instance Show MemoryHeap
+
+instance ToCStruct MemoryHeap where
+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p MemoryHeap{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (size)
+    poke ((p `plusPtr` 8 :: Ptr MemoryHeapFlags)) (flags)
+    f
+  cStructSize = 16
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)
+    f
+
+instance FromCStruct MemoryHeap where
+  peekCStruct p = do
+    size <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))
+    flags <- peek @MemoryHeapFlags ((p `plusPtr` 8 :: Ptr MemoryHeapFlags))
+    pure $ MemoryHeap
+             size flags
+
+instance Storable MemoryHeap where
+  sizeOf ~_ = 16
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero MemoryHeap where
+  zero = MemoryHeap
+           zero
+           zero
+
+
+-- | VkFormatProperties - Structure specifying image format properties
+--
+-- = Description
+--
+-- If no format feature flags are supported, the format itself is not
+-- supported, and images of that format cannot be created.
+--
+-- If @format@ is a block-compressed format, then @bufferFeatures@ /must/
+-- not support any features for the format.
+--
+-- If @format@ is not a multi-plane format then @linearTilingFeatures@ and
+-- @optimalTilingFeatures@ /must/ not contain
+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DISJOINT_BIT'.
+--
+-- = 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.FormatFeatureFlagBits.FormatFeatureFlags',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2',
+-- 'getPhysicalDeviceFormatProperties'
+data FormatProperties = FormatProperties
+  { -- | @linearTilingFeatures@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits'
+    -- specifying features supported by images created with a @tiling@
+    -- parameter of 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR'.
+    linearTilingFeatures :: FormatFeatureFlags
+  , -- | @optimalTilingFeatures@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits'
+    -- specifying features supported by images created with a @tiling@
+    -- parameter of 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'.
+    optimalTilingFeatures :: FormatFeatureFlags
+  , -- | @bufferFeatures@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits'
+    -- specifying features supported by buffers.
+    bufferFeatures :: FormatFeatureFlags
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (FormatProperties)
+#endif
+deriving instance Show FormatProperties
+
+instance ToCStruct FormatProperties where
+  withCStruct x f = allocaBytes 12 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p FormatProperties{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr FormatFeatureFlags)) (linearTilingFeatures)
+    poke ((p `plusPtr` 4 :: Ptr FormatFeatureFlags)) (optimalTilingFeatures)
+    poke ((p `plusPtr` 8 :: Ptr FormatFeatureFlags)) (bufferFeatures)
+    f
+  cStructSize = 12
+  cStructAlignment = 4
+  pokeZeroCStruct _ f = f
+
+instance FromCStruct FormatProperties where
+  peekCStruct p = do
+    linearTilingFeatures <- peek @FormatFeatureFlags ((p `plusPtr` 0 :: Ptr FormatFeatureFlags))
+    optimalTilingFeatures <- peek @FormatFeatureFlags ((p `plusPtr` 4 :: Ptr FormatFeatureFlags))
+    bufferFeatures <- peek @FormatFeatureFlags ((p `plusPtr` 8 :: Ptr FormatFeatureFlags))
+    pure $ FormatProperties
+             linearTilingFeatures optimalTilingFeatures bufferFeatures
+
+instance Storable FormatProperties where
+  sizeOf ~_ = 12
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero FormatProperties where
+  zero = FormatProperties
+           zero
+           zero
+           zero
+
+
+-- | VkImageFormatProperties - Structure specifying an image format
+-- properties
+--
+-- = Members
+--
+-- -   @maxExtent@ are the maximum image dimensions. See the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extentperimagetype Allowed Extent Values>
+--     section below for how these values are constrained by @type@.
+--
+-- -   @maxMipLevels@ is the maximum number of mipmap levels.
+--     @maxMipLevels@ /must/ be equal to the number of levels in the
+--     complete mipmap chain based on the @maxExtent.width@,
+--     @maxExtent.height@, and @maxExtent.depth@, except when one of the
+--     following conditions is true, in which case it /may/ instead be @1@:
+--
+--     -   'getPhysicalDeviceImageFormatProperties'::@tiling@ was
+--         'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR'
+--
+--     -   'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'::@tiling@
+--         was
+--         'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'
+--
+--     -   the
+--         'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'::@pNext@
+--         chain included a
+--         'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalImageFormatInfo'
+--         structure with a handle type included in the @handleTypes@
+--         member for which mipmap image support is not required
+--
+--     -   image @format@ is one 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>
+--
+--     -   @flags@ contains
+--         'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
+--
+-- -   @maxArrayLayers@ is the maximum number of array layers.
+--     @maxArrayLayers@ /must/ be no less than
+--     'PhysicalDeviceLimits'::@maxImageArrayLayers@, except when one of
+--     the following conditions is true, in which case it /may/ instead be
+--     @1@:
+--
+--     -   @tiling@ is
+--         'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR'
+--
+--     -   @tiling@ is
+--         'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL' and
+--         @type@ is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D'
+--
+--     -   @format@ is one 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>
+--
+-- -   If @tiling@ is
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',
+--     then @maxArrayLayers@ /must/ not be 0.
+--
+-- -   @sampleCounts@ is a bitmask of
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits'
+--     specifying all the supported sample counts for this image as
+--     described
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-supported-sample-counts below>.
+--
+-- -   @maxResourceSize@ is an upper bound on the total image size in
+--     bytes, inclusive of all image subresources. Implementations /may/
+--     have an address space limit on total size of a resource, which is
+--     advertised by this property. @maxResourceSize@ /must/ be at least
+--     231.
+--
+-- = Description
+--
+-- There is no mechanism to query the size of an image before creating it,
+-- to compare that size against @maxResourceSize@. If an application
+-- attempts to create an image that exceeds this limit, the creation will
+-- fail and 'Vulkan.Core10.Image.createImage' will return
+-- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'. While the
+-- advertised limit /must/ be at least 231, it /may/ not be possible to
+-- create an image that approaches that size, particularly for
+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D'.
+--
+-- If the combination of parameters to
+-- 'getPhysicalDeviceImageFormatProperties' is not supported by the
+-- implementation for use in 'Vulkan.Core10.Image.createImage', then all
+-- members of 'ImageFormatProperties' will be filled with zero.
+--
+-- Filling 'ImageFormatProperties' with zero for unsupported formats is an
+-- exception to the usual rule that output structures have undefined
+-- contents on error. This exception was unintentional, but is preserved
+-- for backwards compatibility.
+--
+-- = 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',
+-- 'Vulkan.Extensions.VK_NV_external_memory_capabilities.ExternalImageFormatPropertiesNV',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2',
+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlags',
+-- 'getPhysicalDeviceImageFormatProperties'
+data ImageFormatProperties = ImageFormatProperties
+  { -- No documentation found for Nested "VkImageFormatProperties" "maxExtent"
+    maxExtent :: Extent3D
+  , -- No documentation found for Nested "VkImageFormatProperties" "maxMipLevels"
+    maxMipLevels :: Word32
+  , -- No documentation found for Nested "VkImageFormatProperties" "maxArrayLayers"
+    maxArrayLayers :: Word32
+  , -- No documentation found for Nested "VkImageFormatProperties" "sampleCounts"
+    sampleCounts :: SampleCountFlags
+  , -- No documentation found for Nested "VkImageFormatProperties" "maxResourceSize"
+    maxResourceSize :: DeviceSize
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ImageFormatProperties)
+#endif
+deriving instance Show ImageFormatProperties
+
+instance ToCStruct ImageFormatProperties where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ImageFormatProperties{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Extent3D)) (maxExtent)
+    poke ((p `plusPtr` 12 :: Ptr Word32)) (maxMipLevels)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxArrayLayers)
+    poke ((p `plusPtr` 20 :: Ptr SampleCountFlags)) (sampleCounts)
+    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (maxResourceSize)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Extent3D)) (zero)
+    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (zero)
+    f
+
+instance FromCStruct ImageFormatProperties where
+  peekCStruct p = do
+    maxExtent <- peekCStruct @Extent3D ((p `plusPtr` 0 :: Ptr Extent3D))
+    maxMipLevels <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
+    maxArrayLayers <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    sampleCounts <- peek @SampleCountFlags ((p `plusPtr` 20 :: Ptr SampleCountFlags))
+    maxResourceSize <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))
+    pure $ ImageFormatProperties
+             maxExtent maxMipLevels maxArrayLayers sampleCounts maxResourceSize
+
+instance Storable ImageFormatProperties where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ImageFormatProperties where
+  zero = ImageFormatProperties
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceFeatures - Structure describing the fine-grained
+-- features that can be supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- -   If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
+--     feature is not enabled and any buffer access is determined to be out
+--     of bounds, then any other access of the same type (load, store, or
+--     atomic) to the same buffer that accesses an address less than 16
+--     bytes away from the out of bounds address /may/ also be considered
+--     out of bounds.
+--
+-- -   If the access is a load that reads from the same memory locations as
+--     a prior store in the same shader invocation, with no other
+--     intervening accesses to the same memory locations in that shader
+--     invocation, then the result of the load /may/ be the value stored by
+--     the store instruction, even if the access is out of bounds. If the
+--     load is @Volatile@, then an out of bounds load /must/ return the
+--     appropriate out of bounds value.
+--
+--     -   Accesses to descriptors written with a
+--         'Vulkan.Core10.APIConstants.NULL_HANDLE' resource or view are
+--         not considered to be out of bounds. Instead, each type of
+--         descriptor access defines a specific behavior for accesses to a
+--         null descriptor.
+--
+--     -   Out-of-bounds buffer loads will return any of the following
+--         values:
+--
+-- -   If the access is to a uniform buffer and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
+--     feature is enabled, loads of offsets between the end of the
+--     descriptor range and the end of the descriptor range rounded up to a
+--     multiple of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>
+--     bytes /must/ return either zero values or the contents of the memory
+--     at the offset being loaded. Loads of offsets past the descriptor
+--     range rounded up to a multiple of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>
+--     bytes /must/ return zero values.
+--
+-- -   If the access is to a storage buffer and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
+--     feature is enabled, loads of offsets between the end of the
+--     descriptor range and the end of the descriptor range rounded up to a
+--     multiple of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>
+--     bytes /must/ return either zero values or the contents of the memory
+--     at the offset being loaded. Loads of offsets past the descriptor
+--     range rounded up to a multiple of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>
+--     bytes /must/ return zero values. Similarly, stores to addresses
+--     between the end of the descriptor range and the end of the
+--     descriptor range rounded up to a multiple of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>
+--     bytes /may/ be discarded.
+--
+-- -   Non-atomic accesses to storage buffers that are a multiple of 32
+--     bits /may/ be decomposed into 32-bit accesses that are individually
+--     bounds-checked.
+--
+-- -   If the access is to an index buffer and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
+--     feature is enabled, zero values /must/ be returned.
+--
+-- -   If the access is to a uniform texel buffer or storage texel buffer
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
+--     feature is enabled, zero values /must/ be returned, and then
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>
+--     is applied based on the buffer view’s format.
+--
+-- -   Values from anywhere within the memory range(s) bound to the buffer
+--     (possibly including bytes of memory past the end of the buffer, up
+--     to the end of the bound range).
+--
+-- -   Zero values, or (0,0,0,x) vectors for vector reads where x is a
+--     valid value represented in the type of the vector components and
+--     /may/ be any of:
+--
+--     -   0, 1, or the maximum representable positive integer value, for
+--         signed or unsigned integer components
+--
+--     -   0.0 or 1.0, for floating-point components
+--
+--         -   Out-of-bounds writes /may/ modify values within the memory
+--             range(s) bound to the buffer, but /must/ not modify any
+--             other memory.
+--
+-- -   If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
+--     feature is enabled, out of bounds writes /must/ not modify any
+--     memory.
+--
+--     -   Out-of-bounds atomics /may/ modify values within the memory
+--         range(s) bound to the buffer, but /must/ not modify any other
+--         memory, and return an undefined value.
+--
+-- -   If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
+--     feature is enabled, out of bounds atomics /must/ not modify any
+--     memory, and return an undefined value.
+--
+--     -   If the
+--         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
+--         feature is not enabled, vertex input attributes are considered
+--         out of bounds if the offset of the attribute in the bound vertex
+--         buffer range plus the size of the attribute is greater than
+--         either:
+--
+-- -   @vertexBufferRangeSize@, if @bindingStride@ == 0; or
+--
+-- -   (@vertexBufferRangeSize@ - (@vertexBufferRangeSize@ %
+--     @bindingStride@))
+--
+--     where @vertexBufferRangeSize@ is the byte size of the memory range
+--     bound to the vertex buffer binding and @bindingStride@ is the byte
+--     stride of the corresponding vertex input binding. Further, if any
+--     vertex input attribute using a specific vertex input binding is out
+--     of bounds, then all vertex input attributes using that vertex input
+--     binding for that vertex shader invocation are considered out of
+--     bounds.
+--
+-- -   If a vertex input attribute is out of bounds, it will be assigned
+--     one of the following values:
+--
+--     -   Values from anywhere within the memory range(s) bound to the
+--         buffer, converted according to the format of the attribute.
+--
+--     -   Zero values, format converted according to the format of the
+--         attribute.
+--
+--     -   Zero values, or (0,0,0,x) vectors, as described above.
+--
+--         -   If the
+--             <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
+--             feature is enabled, vertex input attributes are considered
+--             out of bounds if the offset of the attribute in the bound
+--             vertex buffer range plus the size of the attribute is
+--             greater than the byte size of the memory range bound to the
+--             vertex buffer binding.
+--
+-- -   If a vertex input attribute is out of bounds, the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input-extraction raw data>
+--     extracted are zero values, 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)>.
+--
+--     -   If @robustBufferAccess@ is not enabled, applications /must/ not
+--         perform out of bounds accesses except under the conditions
+--         enabled by the
+--         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustness pipelineRobustness>
+--         feature .
+--
+--         -   #features-fullDrawIndexUint32# @fullDrawIndexUint32@
+--             specifies the full 32-bit range of indices is supported for
+--             indexed draw calls when using a
+--             'Vulkan.Core10.Enums.IndexType.IndexType' of
+--             'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32'.
+--             @maxDrawIndexedIndexValue@ is the maximum index value that
+--             /may/ be used (aside from the primitive restart index, which
+--             is always 232-1 when the
+--             'Vulkan.Core10.Enums.IndexType.IndexType' is
+--             'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32'). If this
+--             feature is supported, @maxDrawIndexedIndexValue@ /must/ be
+--             232-1; otherwise it /must/ be no smaller than 224-1. See
+--             <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDrawIndexedIndexValue maxDrawIndexedIndexValue>.
+--
+--         -   #features-imageCubeArray# @imageCubeArray@ specifies whether
+--             image views with a
+--             'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--             'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--             /can/ be created, and that the corresponding
+--             @SampledCubeArray@ and @ImageCubeArray@ SPIR-V capabilities
+--             /can/ be used in shader code.
+--
+--         -   #features-independentBlend# @independentBlend@ specifies
+--             whether the
+--             'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'
+--             settings are controlled independently per-attachment. If
+--             this feature is not enabled, the
+--             'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'
+--             settings for all color attachments /must/ be identical.
+--             Otherwise, a different
+--             'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'
+--             /can/ be provided for each bound color attachment.
+--
+--         -   #features-geometryShader# @geometryShader@ specifies whether
+--             geometry shaders are supported. If this feature is not
+--             enabled, the
+--             'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--             and
+--             'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
+--             enum values /must/ not be used. This also specifies whether
+--             shader modules /can/ declare the @Geometry@ capability.
+--
+--         -   #features-tessellationShader# @tessellationShader@ specifies
+--             whether tessellation control and evaluation shaders are
+--             supported. If this feature is not enabled, the
+--             'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',
+--             'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',
+--             'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',
+--             'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',
+--             and
+--             'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO'
+--             enum values /must/ not be used. This also specifies whether
+--             shader modules /can/ declare the @Tessellation@ capability.
+--
+--         -   #features-sampleRateShading# @sampleRateShading@ specifies
+--             whether
+--             <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>
+--             and multisample interpolation are supported. If this feature
+--             is not enabled, the @sampleShadingEnable@ member of the
+--             'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--             structure /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--             and the @minSampleShading@ member is ignored. This also
+--             specifies whether shader modules /can/ declare the
+--             @SampleRateShading@ capability.
+--
+--         -   #features-dualSrcBlend# @dualSrcBlend@ specifies whether
+--             blend operations which take two sources are supported. If
+--             this feature is not enabled, the
+--             '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',
+--             and
+--             'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'
+--             enum values /must/ not be used as source or destination
+--             blending factors. See
+--             <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-dsb>.
+--
+--         -   #features-logicOp# @logicOp@ specifies whether logic
+--             operations are supported. If this feature is not enabled,
+--             the @logicOpEnable@ member of the
+--             'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'
+--             structure /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE',
+--             and the @logicOp@ member is ignored.
+--
+--         -   #features-multiDrawIndirect# @multiDrawIndirect@ specifies
+--             whether multiple draw indirect is supported. If this feature
+--             is not enabled, the @drawCount@ parameter to the
+--             'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect' and
+--             'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect'
+--             commands /must/ be 0 or 1. The @maxDrawIndirectCount@ member
+--             of the 'PhysicalDeviceLimits' structure /must/ also be 1 if
+--             this feature is not supported. See
+--             <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDrawIndirectCount maxDrawIndirectCount>.
+--
+--         -   #features-drawIndirectFirstInstance#
+--             @drawIndirectFirstInstance@ specifies whether indirect
+--             drawing calls support the @firstInstance@ parameter. If this
+--             feature is not enabled, the @firstInstance@ member of all
+--             'Vulkan.Core10.OtherTypes.DrawIndirectCommand' and
+--             'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'
+--             structures that are provided to the
+--             'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect' and
+--             'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect'
+--             commands /must/ be 0.
+--
+--         -   #features-depthClamp# @depthClamp@ specifies whether depth
+--             clamping is supported. If this feature is not enabled, the
+--             @depthClampEnable@ member of the
+--             'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'
+--             structure /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'.
+--             Otherwise, setting @depthClampEnable@ to
+--             'Vulkan.Core10.FundamentalTypes.TRUE' will enable depth
+--             clamping.
+--
+--         -   #features-depthBiasClamp# @depthBiasClamp@ specifies whether
+--             depth bias clamping is supported. If this feature is not
+--             enabled, the @depthBiasClamp@ member of the
+--             'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'
+--             structure /must/ be 0.0 unless the
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS'
+--             dynamic state is enabled, in which case the @depthBiasClamp@
+--             parameter to
+--             'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/
+--             be 0.0.
+--
+--         -   #features-fillModeNonSolid# @fillModeNonSolid@ specifies
+--             whether point and wireframe fill modes are supported. If
+--             this feature is not enabled, the
+--             'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT' and
+--             'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE' enum
+--             values /must/ not be used.
+--
+--         -   #features-depthBounds# @depthBounds@ specifies whether depth
+--             bounds tests are supported. If this feature is not enabled,
+--             the @depthBoundsTestEnable@ member of the
+--             'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'
+--             structure /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--             unless the
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--             dynamic state is enabled, in which case the
+--             @depthBoundsTestEnable@ parameter to
+--             'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--             /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'. When
+--             @depthBoundsTestEnable@ is
+--             'Vulkan.Core10.FundamentalTypes.FALSE', the @minDepthBounds@
+--             and @maxDepthBounds@ members of the
+--             'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'
+--             structure are ignored.
+--
+--         -   #features-wideLines# @wideLines@ specifies whether lines
+--             with width other than 1.0 are supported. If this feature is
+--             not enabled, the @lineWidth@ member of the
+--             'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'
+--             structure /must/ be 1.0 unless the
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH'
+--             dynamic state is enabled, in which case the @lineWidth@
+--             parameter to
+--             'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--             be 1.0. When this feature is supported, the range and
+--             granularity of supported line widths are indicated by the
+--             @lineWidthRange@ and @lineWidthGranularity@ members of the
+--             'PhysicalDeviceLimits' structure, respectively.
+--
+--         -   #features-largePoints# @largePoints@ specifies whether
+--             points with size greater than 1.0 are supported. If this
+--             feature is not enabled, only a point size of 1.0 written by
+--             a shader is supported. The range and granularity of
+--             supported point sizes are indicated by the @pointSizeRange@
+--             and @pointSizeGranularity@ members of the
+--             'PhysicalDeviceLimits' structure, respectively.
+--
+--         -   #features-alphaToOne# @alphaToOne@ specifies whether the
+--             implementation is able to replace the alpha value of the
+--             fragment shader color output in the
+--             <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>
+--             fragment operation. If this feature is not enabled, then the
+--             @alphaToOneEnable@ member of the
+--             'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--             structure /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'.
+--             Otherwise setting @alphaToOneEnable@ to
+--             'Vulkan.Core10.FundamentalTypes.TRUE' will enable
+--             alpha-to-one behavior.
+--
+--         -   #features-multiViewport# @multiViewport@ specifies whether
+--             more than one viewport is supported. If this feature is not
+--             enabled:
+--
+--     -   The @viewportCount@ and @scissorCount@ members of the
+--         'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'
+--         structure /must/ be 1.
+--
+--     -   The @firstViewport@ and @viewportCount@ parameters to the
+--         'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' command
+--         /must/ be 0 and 1, respectively.
+--
+--     -   The @firstScissor@ and @scissorCount@ parameters to the
+--         'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' command
+--         /must/ be 0 and 1, respectively.
+--
+--     -   The @exclusiveScissorCount@ member of the
+--         'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'
+--         structure /must/ be 0 or 1.
+--
+--     -   The @firstExclusiveScissor@ and @exclusiveScissorCount@
+--         parameters to the
+--         'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--         command /must/ be 0 and 1, respectively.
+--
+--         -   #features-samplerAnisotropy# @samplerAnisotropy@ specifies
+--             whether anisotropic filtering is supported. If this feature
+--             is not enabled, the @anisotropyEnable@ member of the
+--             'Vulkan.Core10.Sampler.SamplerCreateInfo' structure /must/
+--             be 'Vulkan.Core10.FundamentalTypes.FALSE'.
+--
+--         -   #features-textureCompressionETC2# @textureCompressionETC2@
+--             specifies whether all of the ETC2 and EAC compressed texture
+--             formats are supported. If this feature is enabled, then the
+--             'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT',
+--             'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'
+--             and
+--             'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
+--             features /must/ be supported in @optimalTilingFeatures@ for
+--             the following formats:
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ETC2_R8G8B8_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ETC2_R8G8B8_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_EAC_R11_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_EAC_R11_SNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_EAC_R11G11_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_EAC_R11G11_SNORM_BLOCK'
+--
+--         To query for additional properties, or if the feature is not
+--         enabled, 'getPhysicalDeviceFormatProperties' and
+--         'getPhysicalDeviceImageFormatProperties' /can/ be used to check
+--         for supported properties of individual formats as normal.
+--
+--         -   #features-textureCompressionASTC_LDR#
+--             @textureCompressionASTC_LDR@ specifies whether all of the
+--             ASTC LDR compressed texture formats are supported. If this
+--             feature is enabled, then the
+--             'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT',
+--             'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'
+--             and
+--             'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
+--             features /must/ be supported in @optimalTilingFeatures@ for
+--             the following formats:
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_SRGB_BLOCK'
+--
+--         To query for additional properties, or if the feature is not
+--         enabled, 'getPhysicalDeviceFormatProperties' and
+--         'getPhysicalDeviceImageFormatProperties' /can/ be used to check
+--         for supported properties of individual formats as normal.
+--
+--         -   #features-textureCompressionBC# @textureCompressionBC@
+--             specifies whether all of the BC compressed texture formats
+--             are supported. If this feature is enabled, then the
+--             'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT',
+--             'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'
+--             and
+--             'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
+--             features /must/ be supported in @optimalTilingFeatures@ for
+--             the following formats:
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC1_RGB_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC1_RGB_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC1_RGBA_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC1_RGBA_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC2_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC2_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC3_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC3_SRGB_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC4_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC4_SNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC5_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC5_SNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC6H_UFLOAT_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC6H_SFLOAT_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC7_UNORM_BLOCK'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_BC7_SRGB_BLOCK'
+--
+--         To query for additional properties, or if the feature is not
+--         enabled, 'getPhysicalDeviceFormatProperties' and
+--         'getPhysicalDeviceImageFormatProperties' /can/ be used to check
+--         for supported properties of individual formats as normal.
+--
+--         -   #features-occlusionQueryPrecise# @occlusionQueryPrecise@
+--             specifies whether occlusion queries returning actual sample
+--             counts are supported. Occlusion queries are created in a
+--             'Vulkan.Core10.Handles.QueryPool' by specifying the
+--             @queryType@ of
+--             'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' in the
+--             'Vulkan.Core10.Query.QueryPoolCreateInfo' structure which is
+--             passed to 'Vulkan.Core10.Query.createQueryPool'. If this
+--             feature is enabled, queries of this type /can/ enable
+--             'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT'
+--             in the @flags@ parameter to
+--             'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery'. If this
+--             feature is not supported, the implementation supports only
+--             boolean occlusion queries. When any samples are passed,
+--             boolean queries will return a non-zero result value,
+--             otherwise a result value of zero is returned. When this
+--             feature is enabled and
+--             'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT'
+--             is set, occlusion queries will report the actual number of
+--             samples passed.
+--
+--         -   #features-pipelineStatisticsQuery# @pipelineStatisticsQuery@
+--             specifies whether the pipeline statistics queries are
+--             supported. If this feature is not enabled, queries of type
+--             'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS'
+--             /cannot/ be created, and none of the
+--             'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlagBits'
+--             bits /can/ be set in the @pipelineStatistics@ member of the
+--             'Vulkan.Core10.Query.QueryPoolCreateInfo' structure.
+--
+--         -   #features-vertexPipelineStoresAndAtomics#
+--             @vertexPipelineStoresAndAtomics@ specifies whether storage
+--             buffers and images support stores and atomic operations in
+--             the vertex, tessellation, and geometry shader stages. If
+--             this feature is not enabled, all storage image, storage
+--             texel buffer, and storage buffer variables used by these
+--             stages in shader modules /must/ be decorated with the
+--             @NonWritable@ decoration (or the @readonly@ memory qualifier
+--             in GLSL).
+--
+--         -   #features-fragmentStoresAndAtomics#
+--             @fragmentStoresAndAtomics@ specifies whether storage buffers
+--             and images support stores and atomic operations in the
+--             fragment shader stage. If this feature is not enabled, all
+--             storage image, storage texel buffer, and storage buffer
+--             variables used by the fragment stage in shader modules
+--             /must/ be decorated with the @NonWritable@ decoration (or
+--             the @readonly@ memory qualifier in GLSL).
+--
+--         -   #features-shaderTessellationAndGeometryPointSize#
+--             @shaderTessellationAndGeometryPointSize@ specifies whether
+--             the @PointSize@ built-in decoration is available in the
+--             tessellation control, tessellation evaluation, and geometry
+--             shader stages. If this feature is not enabled, members
+--             decorated with the @PointSize@ built-in decoration /must/
+--             not be read from or written to and all points written from a
+--             tessellation or geometry shader will have a size of 1.0.
+--             This also specifies whether shader modules /can/ declare the
+--             @TessellationPointSize@ capability for tessellation control
+--             and evaluation shaders, or if the shader modules /can/
+--             declare the @GeometryPointSize@ capability for geometry
+--             shaders. An implementation supporting this feature /must/
+--             also support one or both of the
+--             <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--             or
+--             <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--             features.
+--
+--         -   #features-shaderImageGatherExtended#
+--             @shaderImageGatherExtended@ specifies whether the extended
+--             set of image gather instructions are available in shader
+--             code. If this feature is not enabled, the @OpImage*Gather@
+--             instructions do not support the @Offset@ and @ConstOffsets@
+--             operands. This also specifies whether shader modules /can/
+--             declare the @ImageGatherExtended@ capability.
+--
+--         -   #features-shaderStorageImageExtendedFormats#
+--             @shaderStorageImageExtendedFormats@ specifies whether all
+--             the “storage image extended formats” below are supported; if
+--             this feature is supported, then the
+--             'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_BIT'
+--             /must/ be supported in @optimalTilingFeatures@ for the
+--             following formats:
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_SFLOAT'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_B10G11R11_UFLOAT_PACK32'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16_SFLOAT'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16B16A16_UNORM'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_A2B10G10R10_UNORM_PACK32'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_UNORM'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R8G8_UNORM'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16_UNORM'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R8_UNORM'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16B16A16_SNORM'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_SNORM'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R8G8_SNORM'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16_SNORM'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R8_SNORM'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_SINT'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R8G8_SINT'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_A2B10G10R10_UINT_PACK32'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_UINT'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R8G8_UINT'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT'
+--
+--         @shaderStorageImageExtendedFormats@ feature only adds a
+--         guarantee of format support, which is specified for the whole
+--         physical device. Therefore enabling or disabling the feature via
+--         'Vulkan.Core10.Device.createDevice' has no practical effect.
+--
+--         To query for additional properties, or if the feature is not
+--         supported, 'getPhysicalDeviceFormatProperties' and
+--         'getPhysicalDeviceImageFormatProperties' /can/ be used to check
+--         for supported properties of individual formats, as usual rules
+--         allow.
+--
+--         'Vulkan.Core10.Enums.Format.FORMAT_R32G32_UINT',
+--         'Vulkan.Core10.Enums.Format.FORMAT_R32G32_SINT', and
+--         'Vulkan.Core10.Enums.Format.FORMAT_R32G32_SFLOAT' from
+--         @StorageImageExtendedFormats@ SPIR-V capability, are already
+--         covered by core Vulkan
+--         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-mandatory-features-32bit mandatory format support>.
+--
+--         -   #features-shaderStorageImageMultisample#
+--             @shaderStorageImageMultisample@ specifies whether
+--             multisampled storage images are supported. If this feature
+--             is not enabled, images that are created with a @usage@ that
+--             includes
+--             'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT'
+--             /must/ be created with @samples@ equal to
+--             'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'.
+--             This also specifies whether shader modules /can/ declare the
+--             @StorageImageMultisample@ and @ImageMSArray@ capabilities.
+--
+--         -   #features-shaderStorageImageReadWithoutFormat#
+--             @shaderStorageImageReadWithoutFormat@ specifies whether
+--             storage images and storage texel buffers require a format
+--             qualifier to be specified when reading.
+--             @shaderStorageImageReadWithoutFormat@ applies only to
+--             formats listed in the
+--             <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>
+--             list.
+--
+--         -   #features-shaderStorageImageWriteWithoutFormat#
+--             @shaderStorageImageWriteWithoutFormat@ specifies whether
+--             storage images and storage texel buffers require a format
+--             qualifier to be specified when writing.
+--             @shaderStorageImageWriteWithoutFormat@ applies only to
+--             formats listed in the
+--             <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>
+--             list.
+--
+--         -   #features-shaderUniformBufferArrayDynamicIndexing#
+--             @shaderUniformBufferArrayDynamicIndexing@ specifies whether
+--             arrays of uniform buffers /can/ be indexed by integer
+--             expressions that are dynamically uniform within either the
+--             subgroup or the invocation group in shader code. If this
+--             feature is not enabled, resources with a descriptor type of
+--             'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER'
+--             or
+--             'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+--             /must/ be indexed only by constant integral expressions when
+--             aggregated into arrays in shader code. This also specifies
+--             whether shader modules /can/ declare the
+--             @UniformBufferArrayDynamicIndexing@ capability.
+--
+--         -   #features-shaderSampledImageArrayDynamicIndexing#
+--             @shaderSampledImageArrayDynamicIndexing@ specifies whether
+--             arrays of samplers or sampled images /can/ be indexed by
+--             integer expressions that are dynamically uniform within
+--             either the subgroup or the invocation group in shader code.
+--             If this feature is not enabled, resources with a descriptor
+--             type of
+--             'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER',
+--             'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
+--             or
+--             'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE'
+--             /must/ be indexed only by constant integral expressions when
+--             aggregated into arrays in shader code. This also specifies
+--             whether shader modules /can/ declare the
+--             @SampledImageArrayDynamicIndexing@ capability.
+--
+--         -   #features-shaderStorageBufferArrayDynamicIndexing#
+--             @shaderStorageBufferArrayDynamicIndexing@ specifies whether
+--             arrays of storage buffers /can/ be indexed by integer
+--             expressions that are dynamically uniform within either the
+--             subgroup or the invocation group in shader code. If this
+--             feature is not enabled, resources with a descriptor type of
+--             'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'
+--             or
+--             'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+--             /must/ be indexed only by constant integral expressions when
+--             aggregated into arrays in shader code. This also specifies
+--             whether shader modules /can/ declare the
+--             @StorageBufferArrayDynamicIndexing@ capability.
+--
+--         -   #features-shaderStorageImageArrayDynamicIndexing#
+--             @shaderStorageImageArrayDynamicIndexing@ specifies whether
+--             arrays of storage images /can/ be indexed by integer
+--             expressions that are dynamically uniform within either the
+--             subgroup or the invocation group in shader code. If this
+--             feature is not enabled, resources with a descriptor type of
+--             'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'
+--             /must/ be indexed only by constant integral expressions when
+--             aggregated into arrays in shader code. This also specifies
+--             whether shader modules /can/ declare the
+--             @StorageImageArrayDynamicIndexing@ capability.
+--
+--         -   #features-shaderClipDistance# @shaderClipDistance@ specifies
+--             whether clip distances are supported in shader code. If this
+--             feature is not enabled, any members decorated with the
+--             @ClipDistance@ built-in decoration /must/ not be read from
+--             or written to in shader modules. This also specifies whether
+--             shader modules /can/ declare the @ClipDistance@ capability.
+--
+--         -   #features-shaderCullDistance# @shaderCullDistance@ specifies
+--             whether cull distances are supported in shader code. If this
+--             feature is not enabled, any members decorated with the
+--             @CullDistance@ built-in decoration /must/ not be read from
+--             or written to in shader modules. This also specifies whether
+--             shader modules /can/ declare the @CullDistance@ capability.
+--
+--         -   #features-shaderFloat64# @shaderFloat64@ specifies whether
+--             64-bit floats (doubles) are supported in shader code. If
+--             this feature is not enabled, 64-bit floating-point types
+--             /must/ not be used in shader code. This also specifies
+--             whether shader modules /can/ declare the @Float64@
+--             capability. Declaring and using 64-bit floats is enabled for
+--             all storage classes that SPIR-V allows with the @Float64@
+--             capability.
+--
+--         -   #features-shaderInt64# @shaderInt64@ specifies whether
+--             64-bit integers (signed and unsigned) are supported in
+--             shader code. If this feature is not enabled, 64-bit integer
+--             types /must/ not be used in shader code. This also specifies
+--             whether shader modules /can/ declare the @Int64@ capability.
+--             Declaring and using 64-bit integers is enabled for all
+--             storage classes that SPIR-V allows with the @Int64@
+--             capability.
+--
+--         -   #features-shaderInt16# @shaderInt16@ specifies whether
+--             16-bit integers (signed and unsigned) are supported in
+--             shader code. If this feature is not enabled, 16-bit integer
+--             types /must/ not be used in shader code. This also specifies
+--             whether shader modules /can/ declare the @Int16@ capability.
+--             However, this only enables a subset of the storage classes
+--             that SPIR-V allows for the @Int16@ SPIR-V capability:
+--             Declaring and using 16-bit integers in the @Private@,
+--             @Workgroup@ (for non-Block variables), and @Function@
+--             storage classes is enabled, while declaring them in the
+--             interface storage classes (e.g., @UniformConstant@,
+--             @Uniform@, @StorageBuffer@, @Input@, @Output@, and
+--             @PushConstant@) is not enabled.
+--
+--         -   #features-shaderResourceResidency# @shaderResourceResidency@
+--             specifies whether image operations that return resource
+--             residency information are supported in shader code. If this
+--             feature is not enabled, the @OpImageSparse*@ instructions
+--             /must/ not be used in shader code. This also specifies
+--             whether shader modules /can/ declare the @SparseResidency@
+--             capability. The feature requires at least one of the
+--             @sparseResidency*@ features to be supported.
+--
+--         -   #features-shaderResourceMinLod# @shaderResourceMinLod@
+--             specifies whether image operations specifying the minimum
+--             resource LOD are supported in shader code. If this feature
+--             is not enabled, the @MinLod@ image operand /must/ not be
+--             used in shader code. This also specifies whether shader
+--             modules /can/ declare the @MinLod@ capability.
+--
+--         -   #features-sparseBinding# @sparseBinding@ specifies whether
+--             resource memory /can/ be managed at opaque sparse block
+--             level instead of at the object level. If this feature is not
+--             enabled, resource memory /must/ be bound only on a
+--             per-object basis using the
+--             'Vulkan.Core10.MemoryManagement.bindBufferMemory' and
+--             'Vulkan.Core10.MemoryManagement.bindImageMemory' commands.
+--             In this case, buffers and images /must/ not be created with
+--             'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT'
+--             and
+--             'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT'
+--             set in the @flags@ member of the
+--             'Vulkan.Core10.Buffer.BufferCreateInfo' and
+--             'Vulkan.Core10.Image.ImageCreateInfo' structures,
+--             respectively. Otherwise resource memory /can/ be managed as
+--             described in
+--             <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>.
+--
+--         -   #features-sparseResidencyBuffer# @sparseResidencyBuffer@
+--             specifies whether the device /can/ access partially resident
+--             buffers. If this feature is not enabled, buffers /must/ not
+--             be created with
+--             'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'
+--             set in the @flags@ member of the
+--             'Vulkan.Core10.Buffer.BufferCreateInfo' structure.
+--
+--         -   #features-sparseResidencyImage2D# @sparseResidencyImage2D@
+--             specifies whether the device /can/ access partially resident
+--             2D images with 1 sample per pixel. If this feature is not
+--             enabled, images with an @imageType@ of
+--             'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and @samples@
+--             set to
+--             'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--             /must/ not be created with
+--             'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
+--             set in the @flags@ member of the
+--             'Vulkan.Core10.Image.ImageCreateInfo' structure.
+--
+--         -   #features-sparseResidencyImage3D# @sparseResidencyImage3D@
+--             specifies whether the device /can/ access partially resident
+--             3D images. If this feature is not enabled, images with an
+--             @imageType@ of 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D'
+--             /must/ not be created with
+--             'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
+--             set in the @flags@ member of the
+--             'Vulkan.Core10.Image.ImageCreateInfo' structure.
+--
+--         -   #features-sparseResidency2Samples# @sparseResidency2Samples@
+--             specifies whether the physical device /can/ access partially
+--             resident 2D images with 2 samples per pixel. If this feature
+--             is not enabled, images with an @imageType@ of
+--             'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and @samples@
+--             set to
+--             'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_2_BIT'
+--             /must/ not be created with
+--             'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
+--             set in the @flags@ member of the
+--             'Vulkan.Core10.Image.ImageCreateInfo' structure.
+--
+--         -   #features-sparseResidency4Samples# @sparseResidency4Samples@
+--             specifies whether the physical device /can/ access partially
+--             resident 2D images with 4 samples per pixel. If this feature
+--             is not enabled, images with an @imageType@ of
+--             'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and @samples@
+--             set to
+--             'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_4_BIT'
+--             /must/ not be created with
+--             'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
+--             set in the @flags@ member of the
+--             'Vulkan.Core10.Image.ImageCreateInfo' structure.
+--
+--         -   #features-sparseResidency8Samples# @sparseResidency8Samples@
+--             specifies whether the physical device /can/ access partially
+--             resident 2D images with 8 samples per pixel. If this feature
+--             is not enabled, images with an @imageType@ of
+--             'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and @samples@
+--             set to
+--             'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_8_BIT'
+--             /must/ not be created with
+--             'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
+--             set in the @flags@ member of the
+--             'Vulkan.Core10.Image.ImageCreateInfo' structure.
+--
+--         -   #features-sparseResidency16Samples#
+--             @sparseResidency16Samples@ specifies whether the physical
+--             device /can/ access partially resident 2D images with 16
+--             samples per pixel. If this feature is not enabled, images
+--             with an @imageType@ of
+--             'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and @samples@
+--             set to
+--             'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_16_BIT'
+--             /must/ not be created with
+--             'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
+--             set in the @flags@ member of the
+--             'Vulkan.Core10.Image.ImageCreateInfo' structure.
+--
+--         -   #features-sparseResidencyAliased# @sparseResidencyAliased@
+--             specifies whether the physical device /can/ correctly access
+--             data aliased into multiple locations. If this feature is not
+--             enabled, the
+--             'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_ALIASED_BIT'
+--             and
+--             'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_ALIASED_BIT'
+--             enum values /must/ not be used in @flags@ members of the
+--             'Vulkan.Core10.Buffer.BufferCreateInfo' and
+--             'Vulkan.Core10.Image.ImageCreateInfo' structures,
+--             respectively.
+--
+--         -   #features-variableMultisampleRate# @variableMultisampleRate@
+--             specifies whether all pipelines that will be bound to a
+--             command buffer during a
+--             <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments>
+--             /must/ have the same value for
+--             'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@.
+--             If set to 'Vulkan.Core10.FundamentalTypes.TRUE', the
+--             implementation supports variable multisample rates in a
+--             subpass which uses no attachments. If set to
+--             'Vulkan.Core10.FundamentalTypes.FALSE', then all pipelines
+--             bound in such a subpass /must/ have the same multisample
+--             rate. This has no effect in situations where a subpass uses
+--             any attachments.
+--
+--         -   #features-inheritedQueries# @inheritedQueries@ specifies
+--             whether a secondary command buffer /may/ be executed while a
+--             query is active.
+--
+-- = 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.Device.DeviceCreateInfo',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+-- 'getPhysicalDeviceFeatures'
+data PhysicalDeviceFeatures = PhysicalDeviceFeatures
+  { -- | #features-robustBufferAccess# @robustBufferAccess@ specifies that
+    -- accesses to buffers are bounds-checked against the range of the buffer
+    -- descriptor (as determined by
+    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo'::@range@,
+    -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo'::@range@, or the size of
+    -- the buffer). Out of bounds accesses /must/ not cause application
+    -- termination, and the effects of shader loads, stores, and atomics /must/
+    -- conform to an implementation-dependent behavior as described below.
+    --
+    -- -   A buffer access is considered to be out of bounds if any of the
+    --     following are true:
+    --
+    --     -   The pointer was formed by @OpImageTexelPointer@ and the
+    --         coordinate is less than zero or greater than or equal to the
+    --         number of whole elements in the bound range.
+    --
+    --     -   The pointer was not formed by @OpImageTexelPointer@ and the
+    --         object pointed to is not wholly contained within the bound
+    --         range. This includes accesses performed via /variable pointers/
+    --         where the buffer descriptor being accessed cannot be statically
+    --         determined. Uninitialized pointers and pointers equal to
+    --         @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-cooperativeMatrixRobustBufferAccessNV ::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.
+    --
+    --         If a SPIR-V @OpLoad@ instruction loads a structure and the tail
+    --         end of the structure is out of bounds, then all members of the
+    --         structure are considered out of bounds even if the members at
+    --         the end are not statically used.
+    robustBufferAccess :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "fullDrawIndexUint32"
+    fullDrawIndexUint32 :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "imageCubeArray"
+    imageCubeArray :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "independentBlend"
+    independentBlend :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "geometryShader"
+    geometryShader :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "tessellationShader"
+    tessellationShader :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "sampleRateShading"
+    sampleRateShading :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "dualSrcBlend"
+    dualSrcBlend :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "logicOp"
+    logicOp :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "multiDrawIndirect"
+    multiDrawIndirect :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "drawIndirectFirstInstance"
+    drawIndirectFirstInstance :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "depthClamp"
+    depthClamp :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "depthBiasClamp"
+    depthBiasClamp :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "fillModeNonSolid"
+    fillModeNonSolid :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "depthBounds"
+    depthBounds :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "wideLines"
+    wideLines :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "largePoints"
+    largePoints :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "alphaToOne"
+    alphaToOne :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "multiViewport"
+    multiViewport :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "samplerAnisotropy"
+    samplerAnisotropy :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "textureCompressionETC2"
+    textureCompressionETC2 :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "textureCompressionASTC_LDR"
+    textureCompressionASTC_LDR :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "textureCompressionBC"
+    textureCompressionBC :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "occlusionQueryPrecise"
+    occlusionQueryPrecise :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "pipelineStatisticsQuery"
+    pipelineStatisticsQuery :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vertexPipelineStoresAndAtomics"
+    vertexPipelineStoresAndAtomics :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "fragmentStoresAndAtomics"
+    fragmentStoresAndAtomics :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderTessellationAndGeometryPointSize"
+    shaderTessellationAndGeometryPointSize :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderImageGatherExtended"
+    shaderImageGatherExtended :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderStorageImageExtendedFormats"
+    shaderStorageImageExtendedFormats :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderStorageImageMultisample"
+    shaderStorageImageMultisample :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderStorageImageReadWithoutFormat"
+    shaderStorageImageReadWithoutFormat :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderStorageImageWriteWithoutFormat"
+    shaderStorageImageWriteWithoutFormat :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderUniformBufferArrayDynamicIndexing"
+    shaderUniformBufferArrayDynamicIndexing :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderSampledImageArrayDynamicIndexing"
+    shaderSampledImageArrayDynamicIndexing :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderStorageBufferArrayDynamicIndexing"
+    shaderStorageBufferArrayDynamicIndexing :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderStorageImageArrayDynamicIndexing"
+    shaderStorageImageArrayDynamicIndexing :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderClipDistance"
+    shaderClipDistance :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderCullDistance"
+    shaderCullDistance :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderFloat64"
+    shaderFloat64 :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderInt64"
+    shaderInt64 :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderInt16"
+    shaderInt16 :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderResourceResidency"
+    shaderResourceResidency :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "shaderResourceMinLod"
+    shaderResourceMinLod :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "sparseBinding"
+    sparseBinding :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "sparseResidencyBuffer"
+    sparseResidencyBuffer :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "sparseResidencyImage2D"
+    sparseResidencyImage2D :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "sparseResidencyImage3D"
+    sparseResidencyImage3D :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "sparseResidency2Samples"
+    sparseResidency2Samples :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "sparseResidency4Samples"
+    sparseResidency4Samples :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "sparseResidency8Samples"
+    sparseResidency8Samples :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "sparseResidency16Samples"
+    sparseResidency16Samples :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "sparseResidencyAliased"
+    sparseResidencyAliased :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "variableMultisampleRate"
+    variableMultisampleRate :: Bool
+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "inheritedQueries"
+    inheritedQueries :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceFeatures)
+#endif
+deriving instance Show PhysicalDeviceFeatures
+
+instance ToCStruct PhysicalDeviceFeatures where
+  withCStruct x f = allocaBytes 220 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceFeatures{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (robustBufferAccess))
+    poke ((p `plusPtr` 4 :: Ptr Bool32)) (boolToBool32 (fullDrawIndexUint32))
+    poke ((p `plusPtr` 8 :: Ptr Bool32)) (boolToBool32 (imageCubeArray))
+    poke ((p `plusPtr` 12 :: Ptr Bool32)) (boolToBool32 (independentBlend))
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (geometryShader))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (tessellationShader))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (sampleRateShading))
+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (dualSrcBlend))
+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (logicOp))
+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (multiDrawIndirect))
+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (drawIndirectFirstInstance))
+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (depthClamp))
+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (depthBiasClamp))
+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (fillModeNonSolid))
+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (depthBounds))
+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (wideLines))
+    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (largePoints))
+    poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (alphaToOne))
+    poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (multiViewport))
+    poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (samplerAnisotropy))
+    poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (textureCompressionETC2))
+    poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (textureCompressionASTC_LDR))
+    poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (textureCompressionBC))
+    poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (occlusionQueryPrecise))
+    poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (pipelineStatisticsQuery))
+    poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (vertexPipelineStoresAndAtomics))
+    poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (fragmentStoresAndAtomics))
+    poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (shaderTessellationAndGeometryPointSize))
+    poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (shaderImageGatherExtended))
+    poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (shaderStorageImageExtendedFormats))
+    poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (shaderStorageImageMultisample))
+    poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (shaderStorageImageReadWithoutFormat))
+    poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (shaderStorageImageWriteWithoutFormat))
+    poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (shaderUniformBufferArrayDynamicIndexing))
+    poke ((p `plusPtr` 136 :: Ptr Bool32)) (boolToBool32 (shaderSampledImageArrayDynamicIndexing))
+    poke ((p `plusPtr` 140 :: Ptr Bool32)) (boolToBool32 (shaderStorageBufferArrayDynamicIndexing))
+    poke ((p `plusPtr` 144 :: Ptr Bool32)) (boolToBool32 (shaderStorageImageArrayDynamicIndexing))
+    poke ((p `plusPtr` 148 :: Ptr Bool32)) (boolToBool32 (shaderClipDistance))
+    poke ((p `plusPtr` 152 :: Ptr Bool32)) (boolToBool32 (shaderCullDistance))
+    poke ((p `plusPtr` 156 :: Ptr Bool32)) (boolToBool32 (shaderFloat64))
+    poke ((p `plusPtr` 160 :: Ptr Bool32)) (boolToBool32 (shaderInt64))
+    poke ((p `plusPtr` 164 :: Ptr Bool32)) (boolToBool32 (shaderInt16))
+    poke ((p `plusPtr` 168 :: Ptr Bool32)) (boolToBool32 (shaderResourceResidency))
+    poke ((p `plusPtr` 172 :: Ptr Bool32)) (boolToBool32 (shaderResourceMinLod))
+    poke ((p `plusPtr` 176 :: Ptr Bool32)) (boolToBool32 (sparseBinding))
+    poke ((p `plusPtr` 180 :: Ptr Bool32)) (boolToBool32 (sparseResidencyBuffer))
+    poke ((p `plusPtr` 184 :: Ptr Bool32)) (boolToBool32 (sparseResidencyImage2D))
+    poke ((p `plusPtr` 188 :: Ptr Bool32)) (boolToBool32 (sparseResidencyImage3D))
+    poke ((p `plusPtr` 192 :: Ptr Bool32)) (boolToBool32 (sparseResidency2Samples))
+    poke ((p `plusPtr` 196 :: Ptr Bool32)) (boolToBool32 (sparseResidency4Samples))
+    poke ((p `plusPtr` 200 :: Ptr Bool32)) (boolToBool32 (sparseResidency8Samples))
+    poke ((p `plusPtr` 204 :: Ptr Bool32)) (boolToBool32 (sparseResidency16Samples))
+    poke ((p `plusPtr` 208 :: Ptr Bool32)) (boolToBool32 (sparseResidencyAliased))
+    poke ((p `plusPtr` 212 :: Ptr Bool32)) (boolToBool32 (variableMultisampleRate))
+    poke ((p `plusPtr` 216 :: Ptr Bool32)) (boolToBool32 (inheritedQueries))
+    f
+  cStructSize = 220
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 4 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 8 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 12 :: Ptr Bool32)) (boolToBool32 (zero))
+    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))
+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 136 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 140 :: Ptr Bool32)) (boolToBool32 (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))
+    poke ((p `plusPtr` 160 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 164 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 168 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 172 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 176 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 180 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 184 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 188 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 192 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 196 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 200 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 204 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 208 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 212 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 216 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceFeatures where
+  peekCStruct p = do
+    robustBufferAccess <- peek @Bool32 ((p `plusPtr` 0 :: Ptr Bool32))
+    fullDrawIndexUint32 <- peek @Bool32 ((p `plusPtr` 4 :: Ptr Bool32))
+    imageCubeArray <- peek @Bool32 ((p `plusPtr` 8 :: Ptr Bool32))
+    independentBlend <- peek @Bool32 ((p `plusPtr` 12 :: Ptr Bool32))
+    geometryShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    tessellationShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    sampleRateShading <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    dualSrcBlend <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))
+    logicOp <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))
+    multiDrawIndirect <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))
+    drawIndirectFirstInstance <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))
+    depthClamp <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))
+    depthBiasClamp <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))
+    fillModeNonSolid <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))
+    depthBounds <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))
+    wideLines <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))
+    largePoints <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32))
+    alphaToOne <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))
+    multiViewport <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))
+    samplerAnisotropy <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))
+    textureCompressionETC2 <- peek @Bool32 ((p `plusPtr` 80 :: Ptr Bool32))
+    textureCompressionASTC_LDR <- peek @Bool32 ((p `plusPtr` 84 :: Ptr Bool32))
+    textureCompressionBC <- peek @Bool32 ((p `plusPtr` 88 :: Ptr Bool32))
+    occlusionQueryPrecise <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))
+    pipelineStatisticsQuery <- peek @Bool32 ((p `plusPtr` 96 :: Ptr Bool32))
+    vertexPipelineStoresAndAtomics <- peek @Bool32 ((p `plusPtr` 100 :: Ptr Bool32))
+    fragmentStoresAndAtomics <- peek @Bool32 ((p `plusPtr` 104 :: Ptr Bool32))
+    shaderTessellationAndGeometryPointSize <- peek @Bool32 ((p `plusPtr` 108 :: Ptr Bool32))
+    shaderImageGatherExtended <- peek @Bool32 ((p `plusPtr` 112 :: Ptr Bool32))
+    shaderStorageImageExtendedFormats <- peek @Bool32 ((p `plusPtr` 116 :: Ptr Bool32))
+    shaderStorageImageMultisample <- peek @Bool32 ((p `plusPtr` 120 :: Ptr Bool32))
+    shaderStorageImageReadWithoutFormat <- peek @Bool32 ((p `plusPtr` 124 :: Ptr Bool32))
+    shaderStorageImageWriteWithoutFormat <- peek @Bool32 ((p `plusPtr` 128 :: Ptr Bool32))
+    shaderUniformBufferArrayDynamicIndexing <- peek @Bool32 ((p `plusPtr` 132 :: Ptr Bool32))
+    shaderSampledImageArrayDynamicIndexing <- peek @Bool32 ((p `plusPtr` 136 :: Ptr Bool32))
+    shaderStorageBufferArrayDynamicIndexing <- peek @Bool32 ((p `plusPtr` 140 :: Ptr Bool32))
+    shaderStorageImageArrayDynamicIndexing <- peek @Bool32 ((p `plusPtr` 144 :: Ptr Bool32))
+    shaderClipDistance <- peek @Bool32 ((p `plusPtr` 148 :: Ptr Bool32))
+    shaderCullDistance <- peek @Bool32 ((p `plusPtr` 152 :: Ptr Bool32))
+    shaderFloat64 <- peek @Bool32 ((p `plusPtr` 156 :: Ptr Bool32))
+    shaderInt64 <- peek @Bool32 ((p `plusPtr` 160 :: Ptr Bool32))
+    shaderInt16 <- peek @Bool32 ((p `plusPtr` 164 :: Ptr Bool32))
+    shaderResourceResidency <- peek @Bool32 ((p `plusPtr` 168 :: Ptr Bool32))
+    shaderResourceMinLod <- peek @Bool32 ((p `plusPtr` 172 :: Ptr Bool32))
+    sparseBinding <- peek @Bool32 ((p `plusPtr` 176 :: Ptr Bool32))
+    sparseResidencyBuffer <- peek @Bool32 ((p `plusPtr` 180 :: Ptr Bool32))
+    sparseResidencyImage2D <- peek @Bool32 ((p `plusPtr` 184 :: Ptr Bool32))
+    sparseResidencyImage3D <- peek @Bool32 ((p `plusPtr` 188 :: Ptr Bool32))
+    sparseResidency2Samples <- peek @Bool32 ((p `plusPtr` 192 :: Ptr Bool32))
+    sparseResidency4Samples <- peek @Bool32 ((p `plusPtr` 196 :: Ptr Bool32))
+    sparseResidency8Samples <- peek @Bool32 ((p `plusPtr` 200 :: Ptr Bool32))
+    sparseResidency16Samples <- peek @Bool32 ((p `plusPtr` 204 :: Ptr Bool32))
+    sparseResidencyAliased <- peek @Bool32 ((p `plusPtr` 208 :: Ptr Bool32))
+    variableMultisampleRate <- peek @Bool32 ((p `plusPtr` 212 :: Ptr Bool32))
+    inheritedQueries <- peek @Bool32 ((p `plusPtr` 216 :: Ptr Bool32))
+    pure $ PhysicalDeviceFeatures
+             (bool32ToBool robustBufferAccess)
+             (bool32ToBool fullDrawIndexUint32)
+             (bool32ToBool imageCubeArray)
+             (bool32ToBool independentBlend)
+             (bool32ToBool geometryShader)
+             (bool32ToBool tessellationShader)
+             (bool32ToBool sampleRateShading)
+             (bool32ToBool dualSrcBlend)
+             (bool32ToBool logicOp)
+             (bool32ToBool multiDrawIndirect)
+             (bool32ToBool drawIndirectFirstInstance)
+             (bool32ToBool depthClamp)
+             (bool32ToBool depthBiasClamp)
+             (bool32ToBool fillModeNonSolid)
+             (bool32ToBool depthBounds)
+             (bool32ToBool wideLines)
+             (bool32ToBool largePoints)
+             (bool32ToBool alphaToOne)
+             (bool32ToBool multiViewport)
+             (bool32ToBool samplerAnisotropy)
+             (bool32ToBool textureCompressionETC2)
+             (bool32ToBool textureCompressionASTC_LDR)
+             (bool32ToBool textureCompressionBC)
+             (bool32ToBool occlusionQueryPrecise)
+             (bool32ToBool pipelineStatisticsQuery)
+             (bool32ToBool vertexPipelineStoresAndAtomics)
+             (bool32ToBool fragmentStoresAndAtomics)
+             (bool32ToBool shaderTessellationAndGeometryPointSize)
+             (bool32ToBool shaderImageGatherExtended)
+             (bool32ToBool shaderStorageImageExtendedFormats)
+             (bool32ToBool shaderStorageImageMultisample)
+             (bool32ToBool shaderStorageImageReadWithoutFormat)
+             (bool32ToBool shaderStorageImageWriteWithoutFormat)
+             (bool32ToBool shaderUniformBufferArrayDynamicIndexing)
+             (bool32ToBool shaderSampledImageArrayDynamicIndexing)
+             (bool32ToBool shaderStorageBufferArrayDynamicIndexing)
+             (bool32ToBool shaderStorageImageArrayDynamicIndexing)
+             (bool32ToBool shaderClipDistance)
+             (bool32ToBool shaderCullDistance)
+             (bool32ToBool shaderFloat64)
+             (bool32ToBool shaderInt64)
+             (bool32ToBool shaderInt16)
+             (bool32ToBool shaderResourceResidency)
+             (bool32ToBool shaderResourceMinLod)
+             (bool32ToBool sparseBinding)
+             (bool32ToBool sparseResidencyBuffer)
+             (bool32ToBool sparseResidencyImage2D)
+             (bool32ToBool sparseResidencyImage3D)
+             (bool32ToBool sparseResidency2Samples)
+             (bool32ToBool sparseResidency4Samples)
+             (bool32ToBool sparseResidency8Samples)
+             (bool32ToBool sparseResidency16Samples)
+             (bool32ToBool sparseResidencyAliased)
+             (bool32ToBool variableMultisampleRate)
+             (bool32ToBool inheritedQueries)
+
+instance Storable PhysicalDeviceFeatures where
+  sizeOf ~_ = 220
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceFeatures where
+  zero = PhysicalDeviceFeatures
+           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
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceSparseProperties - Structure specifying physical device
+-- sparse memory properties
+--
+-- = 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', 'PhysicalDeviceProperties'
+data PhysicalDeviceSparseProperties = PhysicalDeviceSparseProperties
+  { -- | @residencyStandard2DBlockShape@ is 'Vulkan.Core10.FundamentalTypes.TRUE'
+    -- if the physical device will access all single-sample 2D sparse resources
+    -- using the standard sparse image block shapes (based on image format), as
+    -- described in the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)>
+    -- table. If this property is not supported the value returned in the
+    -- @imageGranularity@ member of the
+    -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'
+    -- structure for single-sample 2D images is not /required/ to match the
+    -- standard sparse image block dimensions listed in the table.
+    residencyStandard2DBlockShape :: Bool
+  , -- | @residencyStandard2DMultisampleBlockShape@ is
+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the physical device will access
+    -- all multisample 2D sparse resources using the standard sparse image
+    -- block shapes (based on image format), as described in the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapesmsaa Standard Sparse Image Block Shapes (MSAA)>
+    -- table. If this property is not supported, the value returned in the
+    -- @imageGranularity@ member of the
+    -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'
+    -- structure for multisample 2D images is not /required/ to match the
+    -- standard sparse image block dimensions listed in the table.
+    residencyStandard2DMultisampleBlockShape :: Bool
+  , -- | @residencyStandard3DBlockShape@ is 'Vulkan.Core10.FundamentalTypes.TRUE'
+    -- if the physical device will access all 3D sparse resources using the
+    -- standard sparse image block shapes (based on image format), as described
+    -- in the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)>
+    -- table. If this property is not supported, the value returned in the
+    -- @imageGranularity@ member of the
+    -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'
+    -- structure for 3D images is not /required/ to match the standard sparse
+    -- image block dimensions listed in the table.
+    residencyStandard3DBlockShape :: Bool
+  , -- | @residencyAlignedMipSize@ is 'Vulkan.Core10.FundamentalTypes.TRUE' if
+    -- images with mip level dimensions that are not integer multiples of the
+    -- corresponding dimensions of the sparse image block /may/ be placed in
+    -- the mip tail. If this property is not reported, only mip levels with
+    -- dimensions smaller than the @imageGranularity@ member of the
+    -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'
+    -- structure will be placed in the mip tail. If this property is reported
+    -- the implementation is allowed to return
+    -- 'Vulkan.Core10.Enums.SparseImageFormatFlagBits.SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT'
+    -- in the @flags@ member of
+    -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties',
+    -- indicating that mip level dimensions that are not integer multiples of
+    -- the corresponding dimensions of the sparse image block will be placed in
+    -- the mip tail.
+    residencyAlignedMipSize :: Bool
+  , -- | @residencyNonResidentStrict@ specifies whether the physical device /can/
+    -- consistently access non-resident regions of a resource. If this property
+    -- is 'Vulkan.Core10.FundamentalTypes.TRUE', access to non-resident regions
+    -- of resources will be guaranteed to return values as if the resource was
+    -- populated with 0; writes to non-resident regions will be discarded.
+    residencyNonResidentStrict :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceSparseProperties)
+#endif
+deriving instance Show PhysicalDeviceSparseProperties
+
+instance ToCStruct PhysicalDeviceSparseProperties where
+  withCStruct x f = allocaBytes 20 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceSparseProperties{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (residencyStandard2DBlockShape))
+    poke ((p `plusPtr` 4 :: Ptr Bool32)) (boolToBool32 (residencyStandard2DMultisampleBlockShape))
+    poke ((p `plusPtr` 8 :: Ptr Bool32)) (boolToBool32 (residencyStandard3DBlockShape))
+    poke ((p `plusPtr` 12 :: Ptr Bool32)) (boolToBool32 (residencyAlignedMipSize))
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (residencyNonResidentStrict))
+    f
+  cStructSize = 20
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 4 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 8 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 12 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceSparseProperties where
+  peekCStruct p = do
+    residencyStandard2DBlockShape <- peek @Bool32 ((p `plusPtr` 0 :: Ptr Bool32))
+    residencyStandard2DMultisampleBlockShape <- peek @Bool32 ((p `plusPtr` 4 :: Ptr Bool32))
+    residencyStandard3DBlockShape <- peek @Bool32 ((p `plusPtr` 8 :: Ptr Bool32))
+    residencyAlignedMipSize <- peek @Bool32 ((p `plusPtr` 12 :: Ptr Bool32))
+    residencyNonResidentStrict <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceSparseProperties
+             (bool32ToBool residencyStandard2DBlockShape)
+             (bool32ToBool residencyStandard2DMultisampleBlockShape)
+             (bool32ToBool residencyStandard3DBlockShape)
+             (bool32ToBool residencyAlignedMipSize)
+             (bool32ToBool residencyNonResidentStrict)
+
+instance Storable PhysicalDeviceSparseProperties where
+  sizeOf ~_ = 20
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceSparseProperties where
+  zero = PhysicalDeviceSparseProperties
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceLimits - Structure reporting implementation-dependent
+-- physical device limits
+--
+-- = Members
+--
+-- The 'PhysicalDeviceLimits' are properties of the physical device. These
+-- are available in the @limits@ member of the 'PhysicalDeviceProperties'
+-- structure which is returned from 'getPhysicalDeviceProperties'.
+--
+-- = 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.FundamentalTypes.DeviceSize', 'PhysicalDeviceProperties',
+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlags'
+data PhysicalDeviceLimits = PhysicalDeviceLimits
+  { -- | #limits-maxImageDimension1D# @maxImageDimension1D@ is the largest
+    -- dimension (@width@) that is guaranteed to be supported for all images
+    -- created with an @imageType@ of
+    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D'. Some combinations of
+    -- image parameters (format, usage, etc.) /may/ allow support for larger
+    -- dimensions, which /can/ be queried using
+    -- 'getPhysicalDeviceImageFormatProperties'.
+    maxImageDimension1D :: Word32
+  , -- | #limits-maxImageDimension2D# @maxImageDimension2D@ is the largest
+    -- dimension (@width@ or @height@) that is guaranteed to be supported for
+    -- all images created with an @imageType@ of
+    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and without
+    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT'
+    -- set in @flags@. Some combinations of image parameters (format, usage,
+    -- etc.) /may/ allow support for larger dimensions, which /can/ be queried
+    -- using 'getPhysicalDeviceImageFormatProperties'.
+    maxImageDimension2D :: Word32
+  , -- | #limits-maxImageDimension3D# @maxImageDimension3D@ is the largest
+    -- dimension (@width@, @height@, or @depth@) that is guaranteed to be
+    -- supported for all images created with an @imageType@ of
+    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D'. Some combinations of
+    -- image parameters (format, usage, etc.) /may/ allow support for larger
+    -- dimensions, which /can/ be queried using
+    -- 'getPhysicalDeviceImageFormatProperties'.
+    maxImageDimension3D :: Word32
+  , -- | #limits-maxImageDimensionCube# @maxImageDimensionCube@ is the largest
+    -- dimension (@width@ or @height@) that is guaranteed to be supported for
+    -- all images created with an @imageType@ of
+    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and with
+    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT'
+    -- set in @flags@. Some combinations of image parameters (format, usage,
+    -- etc.) /may/ allow support for larger dimensions, which /can/ be queried
+    -- using 'getPhysicalDeviceImageFormatProperties'.
+    maxImageDimensionCube :: Word32
+  , -- | #limits-maxImageArrayLayers# @maxImageArrayLayers@ is the maximum number
+    -- of layers (@arrayLayers@) for an image.
+    maxImageArrayLayers :: Word32
+  , -- | #limits-maxTexelBufferElements# @maxTexelBufferElements@ is the maximum
+    -- number of addressable texels for a buffer view created on a buffer which
+    -- was created with the
+    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT'
+    -- or
+    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT'
+    -- set in the @usage@ member of the 'Vulkan.Core10.Buffer.BufferCreateInfo'
+    -- structure.
+    maxTexelBufferElements :: Word32
+  , -- | #limits-maxUniformBufferRange# @maxUniformBufferRange@ is the maximum
+    -- value that /can/ be specified in the @range@ member of a
+    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structure passed to
+    -- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets' for descriptors of
+    -- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER'
+    -- or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'.
+    maxUniformBufferRange :: Word32
+  , -- | #limits-maxStorageBufferRange# @maxStorageBufferRange@ is the maximum
+    -- value that /can/ be specified in the @range@ member of a
+    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structure passed to
+    -- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets' for descriptors of
+    -- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'
+    -- or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'.
+    maxStorageBufferRange :: Word32
+  , -- | #limits-maxPushConstantsSize# @maxPushConstantsSize@ is the maximum
+    -- size, in bytes, of the pool of push constant memory. For each of the
+    -- push constant ranges indicated by the @pPushConstantRanges@ member of
+    -- the 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo' structure,
+    -- (@offset@ + @size@) /must/ be less than or equal to this limit.
+    maxPushConstantsSize :: Word32
+  , -- | #limits-maxMemoryAllocationCount# @maxMemoryAllocationCount@ is the
+    -- maximum number of device memory allocations, as created by
+    -- 'Vulkan.Core10.Memory.allocateMemory', which /can/ simultaneously exist.
+    maxMemoryAllocationCount :: Word32
+  , -- | #limits-maxSamplerAllocationCount# @maxSamplerAllocationCount@ is the
+    -- maximum number of sampler objects, as created by
+    -- 'Vulkan.Core10.Sampler.createSampler', which /can/ simultaneously exist
+    -- on a device.
+    maxSamplerAllocationCount :: Word32
+  , -- | #limits-bufferImageGranularity# @bufferImageGranularity@ is the
+    -- granularity, in bytes, at which buffer or linear image resources, and
+    -- optimal image resources /can/ be bound to adjacent offsets in the same
+    -- 'Vulkan.Core10.Handles.DeviceMemory' object without aliasing. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-bufferimagegranularity Buffer-Image Granularity>
+    -- for more details.
+    bufferImageGranularity :: DeviceSize
+  , -- | #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. 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
+    -- pipeline. All 'Vulkan.Core10.Handles.DescriptorSet' decorations in
+    -- shader modules /must/ have a value less than @maxBoundDescriptorSets@.
+    -- See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sets>.
+    maxBoundDescriptorSets :: Word32
+  , -- | #limits-maxPerStageDescriptorSamplers# @maxPerStageDescriptorSamplers@
+    -- is the maximum number of samplers that /can/ be accessible to a single
+    -- shader stage in a pipeline layout. Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER' or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'
+    -- count against this limit. Only descriptors 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. A descriptor is accessible to a shader
+    -- stage when the @stageFlags@ member of the
+    -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has
+    -- the bit for that shader stage set. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler>
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>.
+    maxPerStageDescriptorSamplers :: Word32
+  , -- | #limits-maxPerStageDescriptorUniformBuffers#
+    -- @maxPerStageDescriptorUniformBuffers@ is the maximum number of uniform
+    -- buffers that /can/ be accessible to a single shader stage in a pipeline
+    -- layout. Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER' or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+    -- count against this limit. Only descriptors 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. A descriptor is accessible to a shader
+    -- stage when the @stageFlags@ member of the
+    -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has
+    -- the bit for that shader stage set. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer>
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.
+    maxPerStageDescriptorUniformBuffers :: Word32
+  , -- | #limits-maxPerStageDescriptorStorageBuffers#
+    -- @maxPerStageDescriptorStorageBuffers@ is the maximum number of storage
+    -- buffers that /can/ be accessible to a single shader stage in a pipeline
+    -- layout. Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER' or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+    -- count against this limit. Only descriptors 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. A descriptor is accessible to a
+    -- pipeline shader stage when the @stageFlags@ member of the
+    -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has
+    -- the bit for that shader stage set. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer>
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.
+    maxPerStageDescriptorStorageBuffers :: Word32
+  , -- | #limits-maxPerStageDescriptorSampledImages#
+    -- @maxPerStageDescriptorSampledImages@ is the maximum number of sampled
+    -- images that /can/ be accessible to a single shader stage in a pipeline
+    -- layout. Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE', or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'
+    -- count against this limit. Only descriptors 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. A descriptor is accessible to a
+    -- pipeline shader stage when the @stageFlags@ member of the
+    -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has
+    -- the bit for that shader stage set. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage>,
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>.
+    maxPerStageDescriptorSampledImages :: Word32
+  , -- | #limits-maxPerStageDescriptorStorageImages#
+    -- @maxPerStageDescriptorStorageImages@ is the maximum number of storage
+    -- images that /can/ be accessible to a single shader stage in a pipeline
+    -- layout. Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE', or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+    -- count against this limit. Only descriptors 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. A descriptor is accessible to a
+    -- pipeline shader stage when the @stageFlags@ member of the
+    -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has
+    -- the bit for that shader stage set. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage>,
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>.
+    maxPerStageDescriptorStorageImages :: Word32
+  , -- | #limits-maxPerStageDescriptorInputAttachments#
+    -- @maxPerStageDescriptorInputAttachments@ is the maximum number of input
+    -- attachments that /can/ be accessible to a single shader stage in a
+    -- pipeline layout. Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+    -- count against this limit. Only descriptors 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. A descriptor is accessible to a
+    -- pipeline shader stage when the @stageFlags@ member of the
+    -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has
+    -- the bit for that shader stage set. These are only supported for the
+    -- fragment stage. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment>.
+    maxPerStageDescriptorInputAttachments :: Word32
+  , -- | #limits-maxPerStageResources# @maxPerStageResources@ is the maximum
+    -- number of resources that /can/ be accessible to a single shader stage in
+    -- a pipeline layout. Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER',
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER',
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER',
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER',
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC',
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC',
+    -- or 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+    -- count against this limit. Only descriptors 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. For the fragment shader stage the
+    -- framebuffer color attachments also count against this limit.
+    maxPerStageResources :: Word32
+  , -- | #limits-maxDescriptorSetSamplers# @maxDescriptorSetSamplers@ is the
+    -- maximum number of samplers that /can/ be included in a pipeline layout.
+    -- Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER' or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'
+    -- count against this limit. Only descriptors 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. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler>
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>.
+    maxDescriptorSetSamplers :: Word32
+  , -- | #limits-maxDescriptorSetUniformBuffers# @maxDescriptorSetUniformBuffers@
+    -- is the maximum number of uniform buffers that /can/ be included in a
+    -- pipeline layout. Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER' or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+    -- count against this limit. Only descriptors 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. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer>
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.
+    maxDescriptorSetUniformBuffers :: Word32
+  , -- | #limits-maxDescriptorSetUniformBuffersDynamic#
+    -- @maxDescriptorSetUniformBuffersDynamic@ is the maximum number of dynamic
+    -- uniform buffers that /can/ be included in a pipeline layout. Descriptors
+    -- with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+    -- count against this limit. Only descriptors 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. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.
+    maxDescriptorSetUniformBuffersDynamic :: Word32
+  , -- | #limits-maxDescriptorSetStorageBuffers# @maxDescriptorSetStorageBuffers@
+    -- is the maximum number of storage buffers that /can/ be included in a
+    -- pipeline layout. Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER' or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+    -- count against this limit. Only descriptors 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. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer>
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.
+    maxDescriptorSetStorageBuffers :: Word32
+  , -- | #limits-maxDescriptorSetStorageBuffersDynamic#
+    -- @maxDescriptorSetStorageBuffersDynamic@ is the maximum number of dynamic
+    -- storage buffers that /can/ be included in a pipeline layout. Descriptors
+    -- with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+    -- count against this limit. Only descriptors 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. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.
+    maxDescriptorSetStorageBuffersDynamic :: Word32
+  , -- | #limits-maxDescriptorSetSampledImages# @maxDescriptorSetSampledImages@
+    -- is the maximum number of sampled images that /can/ be included in a
+    -- pipeline layout. Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE', or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'
+    -- count against this limit. Only descriptors 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. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage>,
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>.
+    maxDescriptorSetSampledImages :: Word32
+  , -- | #limits-maxDescriptorSetStorageImages# @maxDescriptorSetStorageImages@
+    -- is the maximum number of storage images that /can/ be included in a
+    -- pipeline layout. Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE', or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+    -- count against this limit. Only descriptors 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. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage>,
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>.
+    maxDescriptorSetStorageImages :: Word32
+  , -- | #limits-maxDescriptorSetInputAttachments#
+    -- @maxDescriptorSetInputAttachments@ is the maximum number of input
+    -- attachments that /can/ be included in a pipeline layout. Descriptors
+    -- with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+    -- count against this limit. Only descriptors 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. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment>.
+    maxDescriptorSetInputAttachments :: Word32
+  , -- | #limits-maxVertexInputAttributes# @maxVertexInputAttributes@ is the
+    -- maximum number of vertex input attributes that /can/ be specified for a
+    -- graphics pipeline. These are described in the array of
+    -- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription' structures that
+    -- are provided at graphics pipeline creation time via the
+    -- @pVertexAttributeDescriptions@ member of the
+    -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo' structure.
+    -- See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-attrib>
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.
+    maxVertexInputAttributes :: Word32
+  , -- | #limits-maxVertexInputBindings# @maxVertexInputBindings@ is the maximum
+    -- number of vertex buffers that /can/ be specified for providing vertex
+    -- attributes to a graphics pipeline. These are described in the array of
+    -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' structures that
+    -- are provided at graphics pipeline creation time via the
+    -- @pVertexBindingDescriptions@ member of the
+    -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo' structure.
+    -- The @binding@ member of
+    -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' /must/ be less
+    -- than this limit. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.
+    maxVertexInputBindings :: Word32
+  , -- | #limits-maxVertexInputAttributeOffset# @maxVertexInputAttributeOffset@
+    -- is the maximum vertex input attribute offset that /can/ be added to the
+    -- vertex input binding stride. The @offset@ member of the
+    -- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription' structure
+    -- /must/ be less than or equal to this limit. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.
+    maxVertexInputAttributeOffset :: Word32
+  , -- | #limits-maxVertexInputBindingStride# @maxVertexInputBindingStride@ is
+    -- the maximum vertex input binding stride that /can/ be specified in a
+    -- vertex input binding. The @stride@ member of the
+    -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' structure /must/
+    -- be less than or equal to this limit. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.
+    maxVertexInputBindingStride :: Word32
+  , -- | #limits-maxVertexOutputComponents# @maxVertexOutputComponents@ is the
+    -- maximum number of components of output variables which /can/ be output
+    -- by a vertex shader. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-vertex>.
+    maxVertexOutputComponents :: Word32
+  , -- | #limits-maxTessellationGenerationLevel# @maxTessellationGenerationLevel@
+    -- is the maximum tessellation generation level supported by the
+    -- fixed-function tessellation primitive generator. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>.
+    maxTessellationGenerationLevel :: Word32
+  , -- | #limits-maxTessellationPatchSize# @maxTessellationPatchSize@ is the
+    -- maximum patch size, in vertices, of patches that /can/ be processed by
+    -- the tessellation control shader and tessellation primitive generator.
+    -- The @patchControlPoints@ member of the
+    -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo' structure
+    -- specified at pipeline creation time and the value provided in the
+    -- @OutputVertices@ execution mode of shader modules /must/ be less than or
+    -- equal to this limit. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>.
+    maxTessellationPatchSize :: Word32
+  , -- | #limits-maxTessellationControlPerVertexInputComponents#
+    -- @maxTessellationControlPerVertexInputComponents@ is the maximum number
+    -- of components of input variables which /can/ be provided as per-vertex
+    -- inputs to the tessellation control shader stage.
+    maxTessellationControlPerVertexInputComponents :: Word32
+  , -- | #limits-maxTessellationControlPerVertexOutputComponents#
+    -- @maxTessellationControlPerVertexOutputComponents@ is the maximum number
+    -- of components of per-vertex output variables which /can/ be output from
+    -- the tessellation control shader stage.
+    maxTessellationControlPerVertexOutputComponents :: Word32
+  , -- | #limits-maxTessellationControlPerPatchOutputComponents#
+    -- @maxTessellationControlPerPatchOutputComponents@ is the maximum number
+    -- of components of per-patch output variables which /can/ be output from
+    -- the tessellation control shader stage.
+    maxTessellationControlPerPatchOutputComponents :: Word32
+  , -- | #limits-maxTessellationControlTotalOutputComponents#
+    -- @maxTessellationControlTotalOutputComponents@ is the maximum total
+    -- number of components of per-vertex and per-patch output variables which
+    -- /can/ be output from the tessellation control shader stage.
+    maxTessellationControlTotalOutputComponents :: Word32
+  , -- | #limits-maxTessellationEvaluationInputComponents#
+    -- @maxTessellationEvaluationInputComponents@ is the maximum number of
+    -- components of input variables which /can/ be provided as per-vertex
+    -- inputs to the tessellation evaluation shader stage.
+    maxTessellationEvaluationInputComponents :: Word32
+  , -- | #limits-maxTessellationEvaluationOutputComponents#
+    -- @maxTessellationEvaluationOutputComponents@ is the maximum number of
+    -- components of per-vertex output variables which /can/ be output from the
+    -- tessellation evaluation shader stage.
+    maxTessellationEvaluationOutputComponents :: Word32
+  , -- | #limits-maxGeometryShaderInvocations# @maxGeometryShaderInvocations@ is
+    -- the maximum invocation count supported for instanced geometry shaders.
+    -- The value provided in the @Invocations@ execution mode of shader modules
+    -- /must/ be less than or equal to this limit. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#geometry>.
+    maxGeometryShaderInvocations :: Word32
+  , -- | #limits-maxGeometryInputComponents# @maxGeometryInputComponents@ is the
+    -- maximum number of components of input variables which /can/ be provided
+    -- as inputs to the geometry shader stage.
+    maxGeometryInputComponents :: Word32
+  , -- | #limits-maxGeometryOutputComponents# @maxGeometryOutputComponents@ is
+    -- the maximum number of components of output variables which /can/ be
+    -- output from the geometry shader stage.
+    maxGeometryOutputComponents :: Word32
+  , -- | #limits-maxGeometryOutputVertices# @maxGeometryOutputVertices@ is the
+    -- maximum number of vertices which /can/ be emitted by any geometry
+    -- shader.
+    maxGeometryOutputVertices :: Word32
+  , -- | #limits-maxGeometryTotalOutputComponents#
+    -- @maxGeometryTotalOutputComponents@ is the maximum total number of
+    -- components of output variables, across all emitted vertices, which /can/
+    -- be output from the geometry shader stage.
+    maxGeometryTotalOutputComponents :: Word32
+  , -- | #limits-maxFragmentInputComponents# @maxFragmentInputComponents@ is the
+    -- maximum number of components of input variables which /can/ be provided
+    -- as inputs to the fragment shader stage.
+    maxFragmentInputComponents :: Word32
+  , -- | #limits-maxFragmentOutputAttachments# @maxFragmentOutputAttachments@ is
+    -- the maximum number of output attachments which /can/ be written to by
+    -- the fragment shader stage.
+    maxFragmentOutputAttachments :: Word32
+  , -- | #limits-maxFragmentDualSrcAttachments# @maxFragmentDualSrcAttachments@
+    -- is the maximum number of output attachments which /can/ be written to by
+    -- the fragment shader stage when blending is enabled and one of the dual
+    -- source blend modes is in use. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-dsb>
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>.
+    maxFragmentDualSrcAttachments :: Word32
+  , -- | #limits-maxFragmentCombinedOutputResources#
+    -- @maxFragmentCombinedOutputResources@ is the total number of storage
+    -- buffers, storage images, and output @Location@ decorated color
+    -- attachments (described in
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>)
+    -- which /can/ be used in the fragment shader stage.
+    maxFragmentCombinedOutputResources :: Word32
+  , -- | #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.
+    maxComputeSharedMemorySize :: Word32
+  , -- | #limits-maxComputeWorkGroupCount# @maxComputeWorkGroupCount@[3] is the
+    -- maximum number of local workgroups that /can/ be dispatched by a single
+    -- dispatching 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 dispatching commands /must/ be less
+    -- than or equal to the corresponding limit. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#dispatch>.
+    maxComputeWorkGroupCount :: (Word32, Word32, Word32)
+  , -- | #limits-maxComputeWorkGroupInvocations# @maxComputeWorkGroupInvocations@
+    -- is the maximum total number of compute shader invocations in a single
+    -- local workgroup. The product of the X, Y, and Z sizes, as specified by
+    -- the @LocalSize@ 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.
+    maxComputeWorkGroupInvocations :: Word32
+  , -- | #limits-maxComputeWorkGroupSize# @maxComputeWorkGroupSize@[3] is the
+    -- maximum size of a local compute workgroup, per dimension. These three
+    -- values represent the maximum local workgroup size in the X, Y, and Z
+    -- dimensions, respectively. The @x@, @y@, and @z@ sizes, 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.
+    maxComputeWorkGroupSize :: (Word32, Word32, Word32)
+  , -- | #limits-subPixelPrecisionBits# @subPixelPrecisionBits@ is the number of
+    -- bits of subpixel precision in framebuffer coordinates xf and yf. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast>.
+    subPixelPrecisionBits :: Word32
+  , -- | #limits-subTexelPrecisionBits# @subTexelPrecisionBits@ is the number of
+    -- bits of precision in the division along an axis of an image used for
+    -- minification and magnification filters. 2@subTexelPrecisionBits@ is the
+    -- actual number of divisions along each axis of the image represented.
+    -- Sub-texel values calculated during image sampling will snap to these
+    -- locations when generating the filtered results.
+    subTexelPrecisionBits :: Word32
+  , -- | #limits-mipmapPrecisionBits# @mipmapPrecisionBits@ is the number of bits
+    -- of division that the LOD calculation for mipmap fetching get snapped to
+    -- when determining the contribution from each mip level to the mip
+    -- filtered results. 2@mipmapPrecisionBits@ is the actual number of
+    -- divisions.
+    mipmapPrecisionBits :: Word32
+  , -- | #limits-maxDrawIndexedIndexValue# @maxDrawIndexedIndexValue@ is the
+    -- maximum index value that /can/ be used for indexed draw calls when using
+    -- 32-bit indices. This excludes the primitive restart index value of
+    -- 0xFFFFFFFF. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fullDrawIndexUint32 fullDrawIndexUint32>.
+    maxDrawIndexedIndexValue :: Word32
+  , -- | #limits-maxDrawIndirectCount# @maxDrawIndirectCount@ is the maximum draw
+    -- count that is supported for indirect drawing calls. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>.
+    maxDrawIndirectCount :: Word32
+  , -- | #limits-maxSamplerLodBias# @maxSamplerLodBias@ is the maximum absolute
+    -- sampler LOD bias. The sum of the @mipLodBias@ member of the
+    -- 'Vulkan.Core10.Sampler.SamplerCreateInfo' structure and the @Bias@
+    -- operand of image sampling operations in shader modules (or 0 if no
+    -- @Bias@ operand is provided to an image sampling operation) are clamped
+    -- to the range [-@maxSamplerLodBias@,+@maxSamplerLodBias@]. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-mipLodBias>.
+    maxSamplerLodBias :: Float
+  , -- | #limits-maxSamplerAnisotropy# @maxSamplerAnisotropy@ is the maximum
+    -- degree of sampler anisotropy. The maximum degree of anisotropic
+    -- filtering used for an image sampling operation is the minimum of the
+    -- @maxAnisotropy@ member of the 'Vulkan.Core10.Sampler.SamplerCreateInfo'
+    -- structure and this limit. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-maxAnisotropy>.
+    maxSamplerAnisotropy :: Float
+  , -- | #limits-maxViewports# @maxViewports@ is the maximum number of active
+    -- viewports. The @viewportCount@ member of the
+    -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' structure that
+    -- is provided at pipeline creation /must/ be less than or equal to this
+    -- limit.
+    maxViewports :: Word32
+  , -- | #limits-maxViewportDimensions# @maxViewportDimensions@[2] are the
+    -- maximum viewport dimensions in the X (width) and Y (height) dimensions,
+    -- respectively. The maximum viewport dimensions /must/ be greater than or
+    -- equal to the largest image which /can/ be created and used as a
+    -- framebuffer attachment. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>.
+    maxViewportDimensions :: (Word32, Word32)
+  , -- | #limits-viewportboundsrange# @viewportBoundsRange@[2] is the [minimum,
+    -- maximum] range that the corners of a viewport /must/ be contained in.
+    -- This range /must/ be at least [-2 × @size@, 2 × @size@ - 1], where
+    -- @size@ = max(@maxViewportDimensions@[0], @maxViewportDimensions@[1]).
+    -- See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>.
+    --
+    -- The intent of the @viewportBoundsRange@ limit is to allow a maximum
+    -- sized viewport to be arbitrarily shifted relative to the output target
+    -- as long as at least some portion intersects. This would give a bounds
+    -- limit of [-@size@ + 1, 2 × @size@ - 1] which would allow all possible
+    -- non-empty-set intersections of the output target and the viewport. Since
+    -- these numbers are typically powers of two, picking the signed number
+    -- range using the smallest possible number of bits ends up with the
+    -- specified range.
+    viewportBoundsRange :: (Float, Float)
+  , -- | #limits-viewportSubPixelBits# @viewportSubPixelBits@ is the number of
+    -- bits of subpixel precision for viewport bounds. The subpixel precision
+    -- that floating-point viewport bounds are interpreted at is given by this
+    -- limit.
+    viewportSubPixelBits :: Word32
+  , -- | #limits-minMemoryMapAlignment# @minMemoryMapAlignment@ is the minimum
+    -- /required/ alignment, in bytes, of host visible memory allocations
+    -- within the host address space. When mapping a memory allocation with
+    -- 'Vulkan.Core10.Memory.mapMemory', subtracting @offset@ bytes from the
+    -- returned pointer will always produce an integer multiple of this limit.
+    -- See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess>.
+    -- The value /must/ be a power of two.
+    minMemoryMapAlignment :: Word64
+  , -- | #limits-minTexelBufferOffsetAlignment# @minTexelBufferOffsetAlignment@
+    -- is the minimum /required/ alignment, in bytes, for the @offset@ member
+    -- of the 'Vulkan.Core10.BufferView.BufferViewCreateInfo' structure for
+    -- texel buffers. The value /must/ be a power of two. If the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>
+    -- feature is enabled, this limit is equivalent to the maximum of the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetAlignmentBytes uniformTexelBufferOffsetAlignmentBytes>
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetAlignmentBytes storageTexelBufferOffsetAlignmentBytes>
+    -- members of
+    -- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',
+    -- but smaller alignment is /optionally/ allowed by
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetSingleTexelAlignment storageTexelBufferOffsetSingleTexelAlignment>
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetSingleTexelAlignment uniformTexelBufferOffsetSingleTexelAlignment>.
+    -- If the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>
+    -- feature is not enabled,
+    -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo'::@offset@ /must/ be a
+    -- multiple of this value.
+    minTexelBufferOffsetAlignment :: DeviceSize
+  , -- | #limits-minUniformBufferOffsetAlignment#
+    -- @minUniformBufferOffsetAlignment@ is the minimum /required/ alignment,
+    -- in bytes, for the @offset@ member of the
+    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structure for uniform
+    -- buffers. When a descriptor of type
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER' or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+    -- is updated, the @offset@ /must/ be an integer multiple of this limit.
+    -- Similarly, dynamic offsets for uniform buffers /must/ be multiples of
+    -- this limit. The value /must/ be a power of two.
+    minUniformBufferOffsetAlignment :: DeviceSize
+  , -- | #limits-minStorageBufferOffsetAlignment#
+    -- @minStorageBufferOffsetAlignment@ is the minimum /required/ alignment,
+    -- in bytes, for the @offset@ member of the
+    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structure for storage
+    -- buffers. When a descriptor of type
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER' or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+    -- is updated, the @offset@ /must/ be an integer multiple of this limit.
+    -- Similarly, dynamic offsets for storage buffers /must/ be multiples of
+    -- this limit. The value /must/ be a power of two.
+    minStorageBufferOffsetAlignment :: DeviceSize
+  , -- | #limits-minTexelOffset# @minTexelOffset@ is the minimum offset value for
+    -- the @ConstOffset@ image operand of any of the @OpImageSample*@ or
+    -- @OpImageFetch*@ image instructions.
+    minTexelOffset :: Int32
+  , -- | #limits-maxTexelOffset# @maxTexelOffset@ is the maximum offset value for
+    -- the @ConstOffset@ image operand of any of the @OpImageSample*@ or
+    -- @OpImageFetch*@ image instructions.
+    maxTexelOffset :: Word32
+  , -- | #limits-minTexelGatherOffset# @minTexelGatherOffset@ is the minimum
+    -- offset value for the @Offset@, @ConstOffset@, or @ConstOffsets@ image
+    -- operands of any of the @OpImage*Gather@ image instructions.
+    minTexelGatherOffset :: Int32
+  , -- | #limits-maxTexelGatherOffset# @maxTexelGatherOffset@ is the maximum
+    -- offset value for the @Offset@, @ConstOffset@, or @ConstOffsets@ image
+    -- operands of any of the @OpImage*Gather@ image instructions.
+    maxTexelGatherOffset :: Word32
+  , -- | #limits-minInterpolationOffset# @minInterpolationOffset@ is the base
+    -- minimum (inclusive) negative offset value for the @Offset@ operand of
+    -- the @InterpolateAtOffset@ extended instruction.
+    minInterpolationOffset :: Float
+  , -- | #limits-maxInterpolationOffset# @maxInterpolationOffset@ is the base
+    -- maximum (inclusive) positive offset value for the @Offset@ operand of
+    -- the @InterpolateAtOffset@ extended instruction.
+    maxInterpolationOffset :: Float
+  , -- | #limits-subPixelInterpolationOffsetBits#
+    -- @subPixelInterpolationOffsetBits@ is the number of fractional bits that
+    -- the @x@ and @y@ offsets to the @InterpolateAtOffset@ extended
+    -- instruction /may/ be rounded to as fixed-point values.
+    subPixelInterpolationOffsetBits :: Word32
+  , -- | #limits-maxFramebufferWidth# @maxFramebufferWidth@ is the maximum width
+    -- for a framebuffer. The @width@ member of the
+    -- 'Vulkan.Core10.Pass.FramebufferCreateInfo' structure /must/ be less than
+    -- or equal to this limit.
+    maxFramebufferWidth :: Word32
+  , -- | #limits-maxFramebufferHeight# @maxFramebufferHeight@ is the maximum
+    -- height for a framebuffer. The @height@ member of the
+    -- 'Vulkan.Core10.Pass.FramebufferCreateInfo' structure /must/ be less than
+    -- or equal to this limit.
+    maxFramebufferHeight :: Word32
+  , -- | #limits-maxFramebufferLayers# @maxFramebufferLayers@ is the maximum
+    -- layer count for a layered framebuffer. The @layers@ member of the
+    -- 'Vulkan.Core10.Pass.FramebufferCreateInfo' structure /must/ be less than
+    -- or equal to this limit.
+    maxFramebufferLayers :: Word32
+  , -- | #limits-framebufferColorSampleCounts# @framebufferColorSampleCounts@ is
+    -- a bitmask1 of
+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
+    -- the color sample counts that are supported for all framebuffer color
+    -- attachments with floating- or fixed-point formats. For color attachments
+    -- with integer formats, see
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-framebufferIntegerColorSampleCounts framebufferIntegerColorSampleCounts>.
+    framebufferColorSampleCounts :: SampleCountFlags
+  , -- | #limits-framebufferDepthSampleCounts# @framebufferDepthSampleCounts@ is
+    -- a bitmask1 of
+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
+    -- the supported depth sample counts for all framebuffer depth\/stencil
+    -- attachments, when the format includes a depth component.
+    framebufferDepthSampleCounts :: SampleCountFlags
+  , -- | #limits-framebufferStencilSampleCounts# @framebufferStencilSampleCounts@
+    -- is a bitmask1 of
+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
+    -- the supported stencil sample counts for all framebuffer depth\/stencil
+    -- attachments, when the format includes a stencil component.
+    framebufferStencilSampleCounts :: SampleCountFlags
+  , -- | #limits-framebufferNoAttachmentsSampleCounts#
+    -- @framebufferNoAttachmentsSampleCounts@ is a bitmask1 of
+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
+    -- the supported sample counts for a
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments>.
+    framebufferNoAttachmentsSampleCounts :: SampleCountFlags
+  , -- | #limits-maxColorAttachments# @maxColorAttachments@ is the maximum number
+    -- of color attachments that /can/ be used by a subpass in a render pass.
+    -- The @colorAttachmentCount@ member of the
+    -- 'Vulkan.Core10.Pass.SubpassDescription' or
+    -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'
+    -- structure /must/ be less than or equal to this limit.
+    maxColorAttachments :: Word32
+  , -- | #limits-sampledImageColorSampleCounts# @sampledImageColorSampleCounts@
+    -- is a bitmask1 of
+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
+    -- the sample counts supported for all 2D images created with
+    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', @usage@
+    -- containing
+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', and a
+    -- non-integer color format.
+    sampledImageColorSampleCounts :: SampleCountFlags
+  , -- | #limits-sampledImageIntegerSampleCounts#
+    -- @sampledImageIntegerSampleCounts@ is a bitmask1 of
+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
+    -- the sample counts supported for all 2D images created with
+    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', @usage@
+    -- containing
+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', and an
+    -- integer color format.
+    sampledImageIntegerSampleCounts :: SampleCountFlags
+  , -- | #limits-sampledImageDepthSampleCounts# @sampledImageDepthSampleCounts@
+    -- is a bitmask1 of
+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
+    -- the sample counts supported for all 2D images created with
+    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', @usage@
+    -- containing
+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', and a
+    -- depth format.
+    sampledImageDepthSampleCounts :: SampleCountFlags
+  , -- | #limits-sampledImageStencilSampleCounts#
+    -- @sampledImageStencilSampleCounts@ is a bitmask1 of
+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
+    -- the sample counts supported for all 2D images created with
+    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', @usage@
+    -- containing
+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', and a
+    -- stencil format.
+    sampledImageStencilSampleCounts :: SampleCountFlags
+  , -- | #limits-storageImageSampleCounts# @storageImageSampleCounts@ is a
+    -- bitmask1 of
+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
+    -- the sample counts supported for all 2D images created with
+    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and @usage@
+    -- containing
+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT'.
+    storageImageSampleCounts :: SampleCountFlags
+  , -- | #limits-maxSampleMaskWords# @maxSampleMaskWords@ is the maximum number
+    -- of array elements of a variable decorated with the
+    -- 'Vulkan.Core10.FundamentalTypes.SampleMask' built-in decoration.
+    maxSampleMaskWords :: Word32
+  , -- | #limits-timestampComputeAndGraphics# @timestampComputeAndGraphics@
+    -- specifies support for timestamps on all graphics and compute queues. If
+    -- this limit is 'Vulkan.Core10.FundamentalTypes.TRUE', all queues that
+    -- advertise the 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT' in the
     -- 'QueueFamilyProperties'::@queueFlags@ support
     -- 'QueueFamilyProperties'::@timestampValidBits@ of at least 36. See
diff --git a/src/Vulkan/Core10/Enums.hs b/src/Vulkan/Core10/Enums.hs
--- a/src/Vulkan/Core10/Enums.hs
+++ b/src/Vulkan/Core10/Enums.hs
@@ -47,7 +47,7 @@
                             , module Vulkan.Core10.Enums.InternalAllocationType
                             , module Vulkan.Core10.Enums.LogicOp
                             , module Vulkan.Core10.Enums.MemoryHeapFlagBits
-                            , module Vulkan.Core10.Enums.MemoryMapFlags
+                            , module Vulkan.Core10.Enums.MemoryMapFlagBits
                             , module Vulkan.Core10.Enums.MemoryPropertyFlagBits
                             , module Vulkan.Core10.Enums.ObjectType
                             , module Vulkan.Core10.Enums.PhysicalDeviceType
@@ -143,7 +143,7 @@
 import Vulkan.Core10.Enums.InternalAllocationType
 import Vulkan.Core10.Enums.LogicOp
 import Vulkan.Core10.Enums.MemoryHeapFlagBits
-import Vulkan.Core10.Enums.MemoryMapFlags
+import Vulkan.Core10.Enums.MemoryMapFlagBits
 import Vulkan.Core10.Enums.MemoryPropertyFlagBits
 import Vulkan.Core10.Enums.ObjectType
 import Vulkan.Core10.Enums.PhysicalDeviceType
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
@@ -215,6 +215,10 @@
 -- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
 -- | '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_COMMAND_PREPROCESS_READ_BIT_EXT'               | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT'               |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT'              | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT'               |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
 -- | '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',                       |
@@ -252,18 +256,6 @@
 -- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
 -- | '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'     |
 -- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
@@ -274,7 +266,7 @@
 -- | '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
+-- Supported Access Types
 --
 -- = See Also
 --
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
--- initialized at the beginning of a subpass
+-- | VkAttachmentLoadOp - Specify how contents of an attachment are treated
+-- at the beginning of the subpass where it is first used
 --
 -- = See Also
 --
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,12 +15,10 @@
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 
--- | VkAttachmentStoreOp - Specify how contents of an attachment are stored
--- to memory at the end of a subpass
+-- | VkAttachmentStoreOp - Specify how contents of an attachment are treated
+-- at the end of the subpass where it is last used
 --
 -- = Description
---
--- Note
 --
 -- 'ATTACHMENT_STORE_OP_DONT_CARE' /can/ cause contents generated during
 -- previous render passes to be discarded before reaching memory, even if
diff --git a/src/Vulkan/Core10/Enums/BorderColor.hs b/src/Vulkan/Core10/Enums/BorderColor.hs
--- a/src/Vulkan/Core10/Enums/BorderColor.hs
+++ b/src/Vulkan/Core10/Enums/BorderColor.hs
@@ -58,14 +58,14 @@
 -- white color.
 pattern BORDER_COLOR_INT_OPAQUE_WHITE = BorderColor 5
 
--- | 'BORDER_COLOR_INT_CUSTOM_EXT' indicates that a
+-- | 'BORDER_COLOR_INT_CUSTOM_EXT' specifies that a
 -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT'
 -- structure is included in the
 -- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pNext@ chain containing the
 -- color data in integer format.
 pattern BORDER_COLOR_INT_CUSTOM_EXT = BorderColor 1000287004
 
--- | 'BORDER_COLOR_FLOAT_CUSTOM_EXT' indicates that a
+-- | 'BORDER_COLOR_FLOAT_CUSTOM_EXT' specifies that a
 -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT'
 -- structure is included in the
 -- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pNext@ chain containing the
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
@@ -111,7 +111,10 @@
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsStreamNV',
 -- or @sequencesCountBuffer@ or @sequencesIndexBuffer@ or
 -- @preprocessedBuffer@ member of
--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV'
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV'.
+-- It is also suitable for passing as the underlying buffer of either the
+-- @preprocessAddress@ or @sequenceCountAddress@ members of
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsInfoEXT'.
 pattern BUFFER_USAGE_INDIRECT_BUFFER_BIT = BufferUsageFlagBits 0x00000100
 
 -- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT"
diff --git a/src/Vulkan/Core10/Enums/BufferViewCreateFlags.hs b/src/Vulkan/Core10/Enums/BufferViewCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/BufferViewCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/BufferViewCreateFlags.hs
@@ -23,7 +23,8 @@
 -- = 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.BufferView.BufferViewCreateInfo'
+-- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',
+-- 'Vulkan.Core10.FundamentalTypes.Flags'
 newtype BufferViewCreateFlags = BufferViewCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
diff --git a/src/Vulkan/Core10/Enums/DescriptorPoolResetFlags.hs b/src/Vulkan/Core10/Enums/DescriptorPoolResetFlags.hs
--- a/src/Vulkan/Core10/Enums/DescriptorPoolResetFlags.hs
+++ b/src/Vulkan/Core10/Enums/DescriptorPoolResetFlags.hs
@@ -23,6 +23,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.Core10.FundamentalTypes.Flags',
 -- 'Vulkan.Core10.DescriptorSet.resetDescriptorPool'
 newtype DescriptorPoolResetFlags = DescriptorPoolResetFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
diff --git a/src/Vulkan/Core10/Enums/DeviceCreateFlags.hs b/src/Vulkan/Core10/Enums/DeviceCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/DeviceCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/DeviceCreateFlags.hs
@@ -23,7 +23,8 @@
 -- = 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.Device.DeviceCreateInfo'
+-- 'Vulkan.Core10.Device.DeviceCreateInfo',
+-- 'Vulkan.Core10.FundamentalTypes.Flags'
 newtype DeviceCreateFlags = DeviceCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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_DEPTH_CLAMP_RANGE_EXT
                                                       , DYNAMIC_STATE_LINE_STIPPLE_KHR
                                                       , DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
                                                       , DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV
@@ -181,6 +182,14 @@
 -- @stencilTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE'
 pattern DYNAMIC_STATE_STENCIL_REFERENCE = DynamicState 8
 
+-- | 'DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT' specifies that the
+-- @depthClampMode@ and @pDepthClampRange@ state in
+-- 'Vulkan.Extensions.VK_EXT_depth_clamp_control.PipelineViewportDepthClampControlCreateInfoEXT'
+-- will be ignored and /must/ be set dynamically with
+-- 'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+-- before any draw call.
+pattern DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT = DynamicState 1000582000
+
 -- No documentation found for Nested "VkDynamicState" "VK_DYNAMIC_STATE_LINE_STIPPLE_KHR"
 pattern DYNAMIC_STATE_LINE_STIPPLE_KHR = DynamicState 1000259000
 
@@ -699,6 +708,7 @@
   , DYNAMIC_STATE_STENCIL_COMPARE_MASK
   , DYNAMIC_STATE_STENCIL_WRITE_MASK
   , DYNAMIC_STATE_STENCIL_REFERENCE
+  , DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT
   , DYNAMIC_STATE_LINE_STIPPLE_KHR
   , DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
   , DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV
@@ -788,6 +798,10 @@
     , "STENCIL_WRITE_MASK"
     )
   , (DYNAMIC_STATE_STENCIL_REFERENCE, "STENCIL_REFERENCE")
+  ,
+    ( DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT
+    , "DEPTH_CLAMP_RANGE_EXT"
+    )
   , (DYNAMIC_STATE_LINE_STIPPLE_KHR, "LINE_STIPPLE_KHR")
   ,
     ( DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
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
@@ -187,7 +187,7 @@
                                           , FORMAT_ASTC_12x12_SRGB_BLOCK
                                           , FORMAT_A8_UNORM_KHR
                                           , FORMAT_A1B5G5R5_UNORM_PACK16_KHR
-                                          , FORMAT_R16G16_S10_5_NV
+                                          , FORMAT_R16G16_SFIXED5_NV
                                           , FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG
                                           , FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG
                                           , FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG
@@ -1325,10 +1325,14 @@
 -- 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.
-pattern FORMAT_R16G16_S10_5_NV = Format 1000464000
+-- | 'FORMAT_R16G16_SFIXED5_NV' specifies a two-component, 16-bit signed
+-- fixed-point format with linear encoding. The components are signed
+-- two’s-complement integers where the most significant bit specifies the
+-- sign bit, the next 10 bits specify the integer value, and the last 5
+-- bits represent the fractional value. The signed 16-bit values /can/ be
+-- converted to floats in the range [-1024,1023.96875] by dividing the
+-- value by 32 (25).
+pattern FORMAT_R16G16_SFIXED5_NV = Format 1000464000
 
 -- | 'FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG' specifies a four-component, PVRTC
 -- compressed format where each 64-bit compressed texel block encodes a 4×4
@@ -2239,7 +2243,7 @@
   , FORMAT_ASTC_12x12_SRGB_BLOCK
   , FORMAT_A8_UNORM_KHR
   , FORMAT_A1B5G5R5_UNORM_PACK16_KHR
-  , FORMAT_R16G16_S10_5_NV
+  , FORMAT_R16G16_SFIXED5_NV
   , FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG
   , FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG
   , FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG
@@ -2539,7 +2543,7 @@
     ( FORMAT_A1B5G5R5_UNORM_PACK16_KHR
     , "A1B5G5R5_UNORM_PACK16_KHR"
     )
-  , (FORMAT_R16G16_S10_5_NV, "R16G16_S10_5_NV")
+  , (FORMAT_R16G16_SFIXED5_NV, "R16G16_SFIXED5_NV")
   ,
     ( FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG
     , "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
@@ -256,8 +256,6 @@
 --     in
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operations video encode operations>.
 --
---     Note
---
 --     Specific
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-profiles video profiles>
 --     /may/ have additional restrictions on the format and other image
@@ -299,8 +297,6 @@
 --     when doing
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>
 --     builds.
---
--- Note
 --
 -- 'FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT' and
 -- 'FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT' are only intended to be
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
@@ -1,6 +1,7 @@
 {-# language CPP #-}
 -- No documentation found for Chapter "ImageCreateFlagBits"
-module Vulkan.Core10.Enums.ImageCreateFlagBits  ( ImageCreateFlags
+module Vulkan.Core10.Enums.ImageCreateFlagBits  ( pattern IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
+                                                , ImageCreateFlags
                                                 , ImageCreateFlagBits( IMAGE_CREATE_SPARSE_BINDING_BIT
                                                                      , IMAGE_CREATE_SPARSE_RESIDENCY_BIT
                                                                      , IMAGE_CREATE_SPARSE_ALIASED_BIT
@@ -35,6 +36,10 @@
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
+-- No documentation found for TopLevel "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"
+pattern IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
+
+
 type ImageCreateFlags = ImageCreateFlagBits
 
 -- | VkImageCreateFlagBits - Bitmask specifying additional parameters of an
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
@@ -58,6 +58,34 @@
 -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo' structure (see
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates>).
 --
+-- 'IMAGE_LAYOUT_GENERAL' can be a useful catch-all image layout, but there
+-- are situations where a dedicated image layout must be used instead. Some
+-- examples include:
+--
+-- -   'IMAGE_LAYOUT_PRESENT_SRC_KHR'
+--
+-- -   @VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR@
+--
+-- -   @VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR@
+--
+-- -   @VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR@
+--
+-- -   @VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR@
+--
+-- -   @VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR@
+--
+-- -   @VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR@
+--
+-- While 'IMAGE_LAYOUT_GENERAL' suggests that all types of device access is
+-- possible, it does not mean that all patterns of memory accesses are safe
+-- in all situations.
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#common-render-pass-data-races Common Render Pass Data Races>
+-- outlines some situations where data races are unavoidable. For example,
+-- when a subresource is used as both an attachment and a sampled image
+-- (i.e., not an input attachment),
+-- 'IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' adds extra
+-- guarantees which 'IMAGE_LAYOUT_GENERAL' does not.
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
@@ -81,8 +109,8 @@
 -- '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',
+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ResolveImageInfo2',
 -- 'Vulkan.Extensions.VK_NV_optical_flow.bindOpticalFlowSessionImageNV',
 -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI',
@@ -106,7 +134,8 @@
 -- will cause the contents of the image’s memory to be undefined.
 pattern IMAGE_LAYOUT_UNDEFINED = ImageLayout 0
 
--- | 'IMAGE_LAYOUT_GENERAL' supports all types of device access.
+-- | 'IMAGE_LAYOUT_GENERAL' supports all types of device access, unless
+-- specified otherwise.
 pattern IMAGE_LAYOUT_GENERAL = ImageLayout 1
 
 -- | 'IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL' /must/ only be used as a color
diff --git a/src/Vulkan/Core10/Enums/ImageTiling.hs b/src/Vulkan/Core10/Enums/ImageTiling.hs
--- a/src/Vulkan/Core10/Enums/ImageTiling.hs
+++ b/src/Vulkan/Core10/Enums/ImageTiling.hs
@@ -39,7 +39,7 @@
 -- memory in row-major order, possibly with some padding on each row).
 pattern IMAGE_TILING_LINEAR = ImageTiling 1
 
--- | 'IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT' indicates that the image’s tiling
+-- | 'IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT' specifies that the image’s tiling
 -- is defined by a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifier>.
 -- The modifier is specified at image creation with
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
@@ -24,6 +24,7 @@
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR',
 -- 'Vulkan.Extensions.VK_NV_displacement_micromap.AccelerationStructureTrianglesDisplacementMicromapNV',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.AccelerationStructureTrianglesOpacityMicromapEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.BindIndexBufferIndirectCommandEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindIndexBufferIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV',
diff --git a/src/Vulkan/Core10/Enums/MemoryMapFlagBits.hs b/src/Vulkan/Core10/Enums/MemoryMapFlagBits.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Core10/Enums/MemoryMapFlagBits.hs
@@ -0,0 +1,64 @@
+{-# language CPP #-}
+-- No documentation found for Chapter "MemoryMapFlagBits"
+module Vulkan.Core10.Enums.MemoryMapFlagBits  ( MemoryMapFlags
+                                              , MemoryMapFlagBits( MEMORY_MAP_PLACED_BIT_EXT
+                                                                 , ..
+                                                                 )
+                                              ) where
+
+import Data.Bits (Bits)
+import Data.Bits (FiniteBits)
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import GHC.Show (showString)
+import Numeric (showHex)
+import Vulkan.Zero (Zero)
+import Foreign.Storable (Storable)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Vulkan.Core10.FundamentalTypes (Flags)
+type MemoryMapFlags = MemoryMapFlagBits
+
+-- | VkMemoryMapFlagBits - Bitmask specifying additional parameters of a
+-- memory map
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'MemoryMapFlags'
+newtype MemoryMapFlagBits = MemoryMapFlagBits Flags
+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
+
+-- | 'MEMORY_MAP_PLACED_BIT_EXT' requests that the implementation place the
+-- memory map at the virtual address specified by the application via
+-- 'Vulkan.Extensions.VK_EXT_map_memory_placed.MemoryMapPlacedInfoEXT'::@pPlacedAddress@,
+-- replacing any existing mapping at that address. This flag /must/ not be
+-- used with 'Vulkan.Core10.Memory.mapMemory' as there is no way to specify
+-- the placement address.
+pattern MEMORY_MAP_PLACED_BIT_EXT = MemoryMapFlagBits 0x00000001
+
+conNameMemoryMapFlagBits :: String
+conNameMemoryMapFlagBits = "MemoryMapFlagBits"
+
+enumPrefixMemoryMapFlagBits :: String
+enumPrefixMemoryMapFlagBits = "MEMORY_MAP_PLACED_BIT_EXT"
+
+showTableMemoryMapFlagBits :: [(MemoryMapFlagBits, String)]
+showTableMemoryMapFlagBits = [(MEMORY_MAP_PLACED_BIT_EXT, "")]
+
+instance Show MemoryMapFlagBits where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixMemoryMapFlagBits
+      showTableMemoryMapFlagBits
+      conNameMemoryMapFlagBits
+      (\(MemoryMapFlagBits x) -> x)
+      (\x -> showString "0x" . showHex x)
+
+instance Read MemoryMapFlagBits where
+  readPrec =
+    enumReadPrec
+      enumPrefixMemoryMapFlagBits
+      showTableMemoryMapFlagBits
+      conNameMemoryMapFlagBits
+      MemoryMapFlagBits
diff --git a/src/Vulkan/Core10/Enums/MemoryMapFlagBits.hs-boot b/src/Vulkan/Core10/Enums/MemoryMapFlagBits.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Core10/Enums/MemoryMapFlagBits.hs-boot
@@ -0,0 +1,12 @@
+{-# language CPP #-}
+-- No documentation found for Chapter "MemoryMapFlagBits"
+module Vulkan.Core10.Enums.MemoryMapFlagBits  ( MemoryMapFlags
+                                              , MemoryMapFlagBits
+                                              ) where
+
+
+
+type MemoryMapFlags = MemoryMapFlagBits
+
+data MemoryMapFlagBits
+
diff --git a/src/Vulkan/Core10/Enums/MemoryMapFlags.hs b/src/Vulkan/Core10/Enums/MemoryMapFlags.hs
deleted file mode 100644
--- a/src/Vulkan/Core10/Enums/MemoryMapFlags.hs
+++ /dev/null
@@ -1,55 +0,0 @@
-{-# language CPP #-}
--- No documentation found for Chapter "MemoryMapFlags"
-module Vulkan.Core10.Enums.MemoryMapFlags  (MemoryMapFlags(..)) where
-
-import Data.Bits (Bits)
-import Data.Bits (FiniteBits)
-import Vulkan.Internal.Utils (enumReadPrec)
-import Vulkan.Internal.Utils (enumShowsPrec)
-import GHC.Show (showString)
-import Numeric (showHex)
-import Vulkan.Zero (Zero)
-import Foreign.Storable (Storable)
-import GHC.Read (Read(readPrec))
-import GHC.Show (Show(showsPrec))
-import Vulkan.Core10.FundamentalTypes (Flags)
--- | VkMemoryMapFlags - Reserved for future use
---
--- = Description
---
--- 'MemoryMapFlags' is a bitmask type for setting a mask, but is currently
--- reserved for future use.
---
--- = 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_KHR_map_memory2.MemoryMapInfoKHR',
--- 'Vulkan.Core10.Memory.mapMemory'
-newtype MemoryMapFlags = MemoryMapFlags Flags
-  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
-
-conNameMemoryMapFlags :: String
-conNameMemoryMapFlags = "MemoryMapFlags"
-
-enumPrefixMemoryMapFlags :: String
-enumPrefixMemoryMapFlags = ""
-
-showTableMemoryMapFlags :: [(MemoryMapFlags, String)]
-showTableMemoryMapFlags = []
-
-instance Show MemoryMapFlags where
-  showsPrec =
-    enumShowsPrec
-      enumPrefixMemoryMapFlags
-      showTableMemoryMapFlags
-      conNameMemoryMapFlags
-      (\(MemoryMapFlags x) -> x)
-      (\x -> showString "0x" . showHex x)
-
-instance Read MemoryMapFlags where
-  readPrec =
-    enumReadPrec
-      enumPrefixMemoryMapFlags
-      showTableMemoryMapFlags
-      conNameMemoryMapFlags
-      MemoryMapFlags
diff --git a/src/Vulkan/Core10/Enums/MemoryMapFlags.hs-boot b/src/Vulkan/Core10/Enums/MemoryMapFlags.hs-boot
deleted file mode 100644
--- a/src/Vulkan/Core10/Enums/MemoryMapFlags.hs-boot
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# language CPP #-}
--- No documentation found for Chapter "MemoryMapFlags"
-module Vulkan.Core10.Enums.MemoryMapFlags  (MemoryMapFlags) where
-
-
-
-data MemoryMapFlags
-
diff --git a/src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs b/src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs
--- a/src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs
@@ -39,15 +39,13 @@
 -- are always automatically available and visible to both host and device
 -- memory domains.
 --
--- Note
---
 -- Device coherence is a useful property for certain debugging use cases
 -- (e.g. crash analysis, where performing separate coherence actions could
 -- mean values are not reported correctly). However, device coherent
 -- accesses may be slower than equivalent accesses without device
 -- coherence, particularly if they are also device uncached. For device
 -- uncached memory in particular, repeated accesses to the same or
--- neighbouring memory locations over a short time period (e.g. within a
+-- neighboring memory locations over a short time period (e.g. within a
 -- frame) may be slower than it would be for the equivalent cached memory
 -- type. As such, it is generally inadvisable to use device coherent or
 -- device uncached memory except when really needed.
@@ -71,11 +69,13 @@
 -- 'Vulkan.Core10.Memory.mapMemory'.
 pattern MEMORY_PROPERTY_HOST_VISIBLE_BIT = MemoryPropertyFlagBits 0x00000002
 
--- | 'MEMORY_PROPERTY_HOST_COHERENT_BIT' bit specifies that the host cache
--- management commands 'Vulkan.Core10.Memory.flushMappedMemoryRanges' and
+-- | #memory-coherent# 'MEMORY_PROPERTY_HOST_COHERENT_BIT' bit specifies that
+-- the host cache management commands
+-- 'Vulkan.Core10.Memory.flushMappedMemoryRanges' and
 -- 'Vulkan.Core10.Memory.invalidateMappedMemoryRanges' are not needed to
--- flush host writes to the device or make device writes visible to the
--- host, respectively.
+-- manage
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility>
+-- on the host.
 pattern MEMORY_PROPERTY_HOST_COHERENT_BIT = MemoryPropertyFlagBits 0x00000004
 
 -- | 'MEMORY_PROPERTY_HOST_CACHED_BIT' bit specifies that memory allocated
@@ -104,7 +104,10 @@
 
 -- | 'MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD' bit specifies that device
 -- accesses to allocations of this memory type are automatically made
--- available and visible.
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible available and visible>
+-- on the device. If paired with 'MEMORY_PROPERTY_HOST_COHERENT_BIT',
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible memory domain operations>
+-- are also performed automatically between host and device.
 pattern MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = MemoryPropertyFlagBits 0x00000040
 
 -- | 'MEMORY_PROPERTY_PROTECTED_BIT' bit specifies that the memory type only
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
@@ -26,6 +26,9 @@
                                                   , OBJECT_TYPE_DESCRIPTOR_SET
                                                   , OBJECT_TYPE_FRAMEBUFFER
                                                   , OBJECT_TYPE_COMMAND_POOL
+                                                  , OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT
+                                                  , OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT
+                                                  , OBJECT_TYPE_PIPELINE_BINARY_KHR
                                                   , OBJECT_TYPE_SHADER_EXT
                                                   , OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV
                                                   , OBJECT_TYPE_MICROMAP_EXT
@@ -156,6 +159,10 @@
 -- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
 -- | 'OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV'     | 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV'                                                                                    |
 -- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT'    | 'Vulkan.Extensions.Handles.IndirectCommandsLayoutEXT'                                                                                   |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT'      | 'Vulkan.Extensions.Handles.IndirectExecutionSetEXT'                                                                                     |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
 -- | 'OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA'       | 'Vulkan.Extensions.Handles.BufferCollectionFUCHSIA'                                                                                     |
 -- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
 -- | 'OBJECT_TYPE_MICROMAP_EXT'                    | 'Vulkan.Extensions.Handles.MicromapEXT'                                                                                                 |
@@ -258,6 +265,15 @@
 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_COMMAND_POOL"
 pattern OBJECT_TYPE_COMMAND_POOL = ObjectType 25
 
+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT"
+pattern OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT = ObjectType 1000572001
+
+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT"
+pattern OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT = ObjectType 1000572000
+
+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PIPELINE_BINARY_KHR"
+pattern OBJECT_TYPE_PIPELINE_BINARY_KHR = ObjectType 1000483000
+
 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SHADER_EXT"
 pattern OBJECT_TYPE_SHADER_EXT = ObjectType 1000482000
 
@@ -354,6 +370,9 @@
   , OBJECT_TYPE_DESCRIPTOR_SET
   , OBJECT_TYPE_FRAMEBUFFER
   , OBJECT_TYPE_COMMAND_POOL
+  , OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT
+  , OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT
+  , OBJECT_TYPE_PIPELINE_BINARY_KHR
   , OBJECT_TYPE_SHADER_EXT
   , OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV
   , OBJECT_TYPE_MICROMAP_EXT
@@ -417,6 +436,15 @@
   , (OBJECT_TYPE_DESCRIPTOR_SET, "DESCRIPTOR_SET")
   , (OBJECT_TYPE_FRAMEBUFFER, "FRAMEBUFFER")
   , (OBJECT_TYPE_COMMAND_POOL, "COMMAND_POOL")
+  ,
+    ( OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT
+    , "INDIRECT_EXECUTION_SET_EXT"
+    )
+  ,
+    ( OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT
+    , "INDIRECT_COMMANDS_LAYOUT_EXT"
+    )
+  , (OBJECT_TYPE_PIPELINE_BINARY_KHR, "PIPELINE_BINARY_KHR")
   , (OBJECT_TYPE_SHADER_EXT, "SHADER_EXT")
   ,
     ( OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV
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
@@ -25,7 +25,7 @@
 -- = Description
 --
 -- -   'PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'
---     indicates that access to color and input attachments will have
+--     specifies 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.
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
@@ -18,6 +18,8 @@
                                                                            , PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
                                                                            , PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
                                                                            , PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR
+                                                                           , PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
+                                                                           , PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
                                                                            , PIPELINE_CREATE_DEFER_COMPILE_BIT_NV
                                                                            , PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
                                                                            , PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
@@ -26,8 +28,6 @@
                                                                            , PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
                                                                            , PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
                                                                            , PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
-                                                                           , PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
-                                                                           , PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
                                                                            , PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
                                                                            , PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT
                                                                            , PIPELINE_CREATE_DISPATCH_BASE_BIT
@@ -148,7 +148,7 @@
 --     a subsequent run (e.g. for trace capture and replay).
 --
 -- -   'PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' specifies that the
---     pipeline can be used in combination with
+--     pipeline /can/ be used in combination with
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands>.
 --
 -- -   'PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' specifies
@@ -156,7 +156,7 @@
 --     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.Handles.Pipeline' will be
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE'.
 --
 -- -   When creating multiple pipelines,
@@ -231,8 +231,6 @@
 -- with 'PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT' if available,
 -- whether or not that bit was specified.
 --
--- Note
---
 -- Using 'PIPELINE_CREATE_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
@@ -303,6 +301,12 @@
 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"
 pattern PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = PipelineCreateFlagBits 0x00000040
 
+-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"
+pattern PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineCreateFlagBits 0x00200000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"
+pattern PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = PipelineCreateFlagBits 0x00400000
+
 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"
 pattern PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = PipelineCreateFlagBits 0x00000020
 
@@ -327,12 +331,6 @@
 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"
 pattern PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = PipelineCreateFlagBits 0x00004000
 
--- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"
-pattern PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = PipelineCreateFlagBits 0x00400000
-
--- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"
-pattern PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineCreateFlagBits 0x00200000
-
 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"
 pattern PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = PipelineCreateFlagBits 0x00000200
 
@@ -422,6 +420,14 @@
     , "CAPTURE_STATISTICS_BIT_KHR"
     )
   ,
+    ( PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
+    , "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
+    , "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"
+    )
+  ,
     ( PIPELINE_CREATE_DEFER_COMPILE_BIT_NV
     , "DEFER_COMPILE_BIT_NV"
     )
@@ -452,14 +458,6 @@
   ,
     ( PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
     , "RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"
-    )
-  ,
-    ( PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
-    , "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"
-    )
-  ,
-    ( PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
-    , "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"
     )
   ,
     ( PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
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
@@ -26,12 +26,12 @@
 -- = Description
 --
 -- -   'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
---     indicates that access to the depth aspects of depth\/stencil and
+--     specifies 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
+--     specifies that access to the stencil aspects of depth\/stencil and
 --     input attachments will have implicit framebuffer-local memory
 --     dependencies.
 --
diff --git a/src/Vulkan/Core10/Enums/PipelineDynamicStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineDynamicStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineDynamicStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineDynamicStateCreateFlags.hs
@@ -23,6 +23,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.Core10.FundamentalTypes.Flags',
 -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'
 newtype PipelineDynamicStateCreateFlags = PipelineDynamicStateCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
diff --git a/src/Vulkan/Core10/Enums/PipelineInputAssemblyStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineInputAssemblyStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineInputAssemblyStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineInputAssemblyStateCreateFlags.hs
@@ -23,6 +23,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.Core10.FundamentalTypes.Flags',
 -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'
 newtype PipelineInputAssemblyStateCreateFlags = PipelineInputAssemblyStateCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
diff --git a/src/Vulkan/Core10/Enums/PipelineMultisampleStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineMultisampleStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineMultisampleStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineMultisampleStateCreateFlags.hs
@@ -23,6 +23,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.Core10.FundamentalTypes.Flags',
 -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
 newtype PipelineMultisampleStateCreateFlags = PipelineMultisampleStateCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
diff --git a/src/Vulkan/Core10/Enums/PipelineRasterizationStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineRasterizationStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineRasterizationStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineRasterizationStateCreateFlags.hs
@@ -23,6 +23,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.Core10.FundamentalTypes.Flags',
 -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'
 newtype PipelineRasterizationStateCreateFlags = PipelineRasterizationStateCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
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
@@ -25,8 +25,6 @@
 --
 -- = Description
 --
--- Note
---
 -- If
 -- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'
 -- and
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
@@ -74,6 +74,8 @@
 -- @VkTraceRaysIndirect*@ data structures are consumed. This stage also
 -- includes reading commands written by
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV'.
+-- This stage also includes reading commands written by
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.cmdExecuteGeneratedCommandsEXT'.
 pattern PIPELINE_STAGE_DRAW_INDIRECT_BIT = PipelineStageFlagBits 0x00000002
 
 -- | 'PIPELINE_STAGE_VERTEX_INPUT_BIT' specifies the stage of the pipeline
diff --git a/src/Vulkan/Core10/Enums/PipelineTessellationStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineTessellationStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineTessellationStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineTessellationStateCreateFlags.hs
@@ -23,6 +23,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.Core10.FundamentalTypes.Flags',
 -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo'
 newtype PipelineTessellationStateCreateFlags = PipelineTessellationStateCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
diff --git a/src/Vulkan/Core10/Enums/PipelineVertexInputStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineVertexInputStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineVertexInputStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineVertexInputStateCreateFlags.hs
@@ -23,6 +23,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.Core10.FundamentalTypes.Flags',
 -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo'
 newtype PipelineVertexInputStateCreateFlags = PipelineVertexInputStateCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
diff --git a/src/Vulkan/Core10/Enums/PipelineViewportStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineViewportStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineViewportStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineViewportStateCreateFlags.hs
@@ -23,6 +23,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.Core10.FundamentalTypes.Flags',
 -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'
 newtype PipelineViewportStateCreateFlags = PipelineViewportStateCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
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
@@ -26,15 +26,15 @@
 --
 -- 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
+-- is '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
+-- is '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'.
 --
diff --git a/src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs b/src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs
--- a/src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs
@@ -47,8 +47,6 @@
 -- mesh or task shaders, which may affect several of the counters in
 -- unexpected ways.
 --
--- Note
---
 -- For example, tile-based rendering devices /may/ need to replay the scene
 -- multiple times, affecting some of the counts.
 --
diff --git a/src/Vulkan/Core10/Enums/QueryPoolCreateFlags.hs b/src/Vulkan/Core10/Enums/QueryPoolCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/QueryPoolCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/QueryPoolCreateFlags.hs
@@ -23,6 +23,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.Core10.FundamentalTypes.Flags',
 -- 'Vulkan.Core10.Query.QueryPoolCreateInfo'
 newtype QueryPoolCreateFlags = QueryPoolCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
diff --git a/src/Vulkan/Core10/Enums/QueueFlagBits.hs b/src/Vulkan/Core10/Enums/QueueFlagBits.hs
--- a/src/Vulkan/Core10/Enums/QueueFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/QueueFlagBits.hs
@@ -41,8 +41,6 @@
 -- support graphics operations, compute operations, and protected memory
 -- operations.
 --
--- Note
---
 -- All commands that are allowed on a queue that supports transfer
 -- operations are also allowed on a queue that supports either graphics or
 -- compute operations. Thus, if the capabilities of a queue family include
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
@@ -19,7 +19,9 @@
                                           , ERROR_FORMAT_NOT_SUPPORTED
                                           , ERROR_FRAGMENTED_POOL
                                           , ERROR_UNKNOWN
-                                          , ERROR_INCOMPATIBLE_SHADER_BINARY_EXT
+                                          , ERROR_NOT_ENOUGH_SPACE_KHR
+                                          , PIPELINE_BINARY_MISSING_KHR
+                                          , INCOMPATIBLE_SHADER_BINARY_EXT
                                           , ERROR_COMPRESSION_EXHAUSTED_EXT
                                           , OPERATION_NOT_DEFERRED_KHR
                                           , OPERATION_DEFERRED_KHR
@@ -70,8 +72,6 @@
 -- Vulkan objects. Objects that have already been successfully created
 -- /can/ still be used by the application.
 --
--- Note
---
 -- As a general rule, @Free@, @Release@, and @Reset@ commands do not return
 -- 'ERROR_OUT_OF_HOST_MEMORY', while any other command with a return code
 -- /may/ return it. Any exceptions from this rule are described for those
@@ -82,8 +82,6 @@
 -- application and implementation. Under these conditions, it /may/ be
 -- returned from any command returning a 'Result'.
 --
--- Note
---
 -- 'ERROR_UNKNOWN' is not expected to ever be returned if the application
 -- behavior is valid, and if the implementation is bug-free. If
 -- 'ERROR_UNKNOWN' is received, the application should be checked against
@@ -180,10 +178,26 @@
 -- has provided invalid input, or an implementation failure has occurred.
 pattern ERROR_UNKNOWN = Result (-13)
 
--- | 'ERROR_INCOMPATIBLE_SHADER_BINARY_EXT' The provided binary shader code
--- is not compatible with this device.
-pattern ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = Result 1000482000
+-- | 'ERROR_NOT_ENOUGH_SPACE_KHR' The application did not provide enough
+-- space to return all the required data.
+pattern ERROR_NOT_ENOUGH_SPACE_KHR = Result (-1000483000)
 
+-- | 'PIPELINE_BINARY_MISSING_KHR' The application attempted to create a
+-- pipeline binary by querying an internal cache, but the internal cache
+-- entry did not exist.
+pattern PIPELINE_BINARY_MISSING_KHR = Result 1000483000
+
+-- | 'INCOMPATIBLE_SHADER_BINARY_EXT' The provided binary shader code is not
+-- compatible with this device.
+--
+-- In the initial version of the @VK_EXT_shader_object@ extension, this
+-- return code was named
+-- 'Vulkan.Extensions.VK_EXT_shader_object.ERROR_INCOMPATIBLE_SHADER_BINARY_EXT'
+-- and improperly described as an error code. The name has been changed,
+-- but the old name is retained as an alias for compatibility with old
+-- code.
+pattern INCOMPATIBLE_SHADER_BINARY_EXT = Result 1000482000
+
 -- | 'ERROR_COMPRESSION_EXHAUSTED_EXT' An image creation failed because
 -- internal resources required for compression are exhausted. This /must/
 -- only be returned when fixed-rate compression is requested.
@@ -213,7 +227,10 @@
 -- control.
 pattern ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = Result (-1000255000)
 
--- No documentation found for Nested "VkResult" "VK_ERROR_NOT_PERMITTED_KHR"
+-- | 'ERROR_NOT_PERMITTED_KHR' The driver implementation has denied a request
+-- to acquire a priority above the default priority
+-- ('Vulkan.Extensions.VK_KHR_global_priority.QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT')
+-- because the application does not have sufficient privileges.
 pattern ERROR_NOT_PERMITTED_KHR = Result (-1000174001)
 
 -- No documentation found for Nested "VkResult" "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT"
@@ -307,7 +324,9 @@
   , ERROR_FORMAT_NOT_SUPPORTED
   , ERROR_FRAGMENTED_POOL
   , ERROR_UNKNOWN
-  , ERROR_INCOMPATIBLE_SHADER_BINARY_EXT
+  , ERROR_NOT_ENOUGH_SPACE_KHR
+  , PIPELINE_BINARY_MISSING_KHR
+  , INCOMPATIBLE_SHADER_BINARY_EXT
   , ERROR_COMPRESSION_EXHAUSTED_EXT
   , OPERATION_NOT_DEFERRED_KHR
   , OPERATION_DEFERRED_KHR
@@ -361,9 +380,11 @@
   , (ERROR_FORMAT_NOT_SUPPORTED, "ERROR_FORMAT_NOT_SUPPORTED")
   , (ERROR_FRAGMENTED_POOL, "ERROR_FRAGMENTED_POOL")
   , (ERROR_UNKNOWN, "ERROR_UNKNOWN")
+  , (ERROR_NOT_ENOUGH_SPACE_KHR, "ERROR_NOT_ENOUGH_SPACE_KHR")
+  , (PIPELINE_BINARY_MISSING_KHR, "PIPELINE_BINARY_MISSING_KHR")
   ,
-    ( ERROR_INCOMPATIBLE_SHADER_BINARY_EXT
-    , "ERROR_INCOMPATIBLE_SHADER_BINARY_EXT"
+    ( INCOMPATIBLE_SHADER_BINARY_EXT
+    , "INCOMPATIBLE_SHADER_BINARY_EXT"
     )
   ,
     ( ERROR_COMPRESSION_EXHAUSTED_EXT
diff --git a/src/Vulkan/Core10/Enums/SampleCountFlagBits.hs b/src/Vulkan/Core10/Enums/SampleCountFlagBits.hs
--- a/src/Vulkan/Core10/Enums/SampleCountFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/SampleCountFlagBits.hs
@@ -33,7 +33,7 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.Pass.AttachmentDescription',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',
--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD',
+-- 'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo',
 -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.FramebufferMixedSamplesCombinationNV',
 -- 'Vulkan.Core10.Image.ImageCreateInfo',
diff --git a/src/Vulkan/Core10/Enums/SamplerAddressMode.hs b/src/Vulkan/Core10/Enums/SamplerAddressMode.hs
--- a/src/Vulkan/Core10/Enums/SamplerAddressMode.hs
+++ b/src/Vulkan/Core10/Enums/SamplerAddressMode.hs
@@ -44,10 +44,10 @@
 pattern SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = SamplerAddressMode 3
 
 -- | 'SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE' specifies that the mirror
--- clamp to edge wrap mode will be used. This is only valid if
+-- clamp to edge wrap mode will be used. This is only valid if the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerMirrorClampToEdge samplerMirrorClampToEdge>
--- is enabled, or if the @VK_KHR_sampler_mirror_clamp_to_edge@ extension is
--- enabled.
+-- feature is enabled, or if the @VK_KHR_sampler_mirror_clamp_to_edge@
+-- extension is enabled.
 pattern SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = SamplerAddressMode 4
 
 {-# COMPLETE
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
@@ -28,8 +28,6 @@
 --
 -- = Description
 --
--- Note
---
 -- The approximations used when
 -- 'SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT' is specified
 -- are implementation defined. Some implementations /may/ interpolate
diff --git a/src/Vulkan/Core10/Enums/SemaphoreCreateFlags.hs b/src/Vulkan/Core10/Enums/SemaphoreCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/SemaphoreCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/SemaphoreCreateFlags.hs
@@ -23,6 +23,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.Core10.FundamentalTypes.Flags',
 -- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo'
 newtype SemaphoreCreateFlags = SemaphoreCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
diff --git a/src/Vulkan/Core10/Enums/ShaderModuleCreateFlags.hs b/src/Vulkan/Core10/Enums/ShaderModuleCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/ShaderModuleCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/ShaderModuleCreateFlags.hs
@@ -23,6 +23,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.Core10.FundamentalTypes.Flags',
 -- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo'
 newtype ShaderModuleCreateFlags = ShaderModuleCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
diff --git a/src/Vulkan/Core10/Enums/ShaderStageFlagBits.hs b/src/Vulkan/Core10/Enums/ShaderStageFlagBits.hs
--- a/src/Vulkan/Core10/Enums/ShaderStageFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/ShaderStageFlagBits.hs
@@ -40,8 +40,6 @@
 --
 -- = Description
 --
--- Note
---
 -- 'SHADER_STAGE_ALL_GRAPHICS' only includes the original five graphics
 -- stages included in Vulkan 1.0, and not any stages added by extensions.
 -- Thus, it may not have the desired effect in all cases.
diff --git a/src/Vulkan/Core10/Enums/SharingMode.hs b/src/Vulkan/Core10/Enums/SharingMode.hs
--- a/src/Vulkan/Core10/Enums/SharingMode.hs
+++ b/src/Vulkan/Core10/Enums/SharingMode.hs
@@ -18,8 +18,6 @@
 --
 -- = Description
 --
--- Note
---
 -- 'SHARING_MODE_CONCURRENT' /may/ result in lower performance access to
 -- the buffer or image than 'SHARING_MODE_EXCLUSIVE'.
 --
@@ -33,8 +31,6 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>
 -- to make the memory contents of a range or image subresource accessible
 -- to a different queue family.
---
--- Note
 --
 -- Images still require a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layouts layout transition>
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
@@ -1,7480 +1,8102 @@
 {-# language CPP #-}
 -- No documentation found for Chapter "StructureType"
-module Vulkan.Core10.Enums.StructureType  (StructureType( STRUCTURE_TYPE_APPLICATION_INFO
-                                                        , STRUCTURE_TYPE_INSTANCE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_DEVICE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_SUBMIT_INFO
-                                                        , STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
-                                                        , STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
-                                                        , STRUCTURE_TYPE_BIND_SPARSE_INFO
-                                                        , STRUCTURE_TYPE_FENCE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_EVENT_CREATE_INFO
-                                                        , STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
-                                                        , STRUCTURE_TYPE_BUFFER_CREATE_INFO
-                                                        , STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
-                                                        , STRUCTURE_TYPE_IMAGE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
-                                                        , STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
-                                                        , STRUCTURE_TYPE_SAMPLER_CREATE_INFO
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
-                                                        , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
-                                                        , STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
-                                                        , STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
-                                                        , STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
-                                                        , STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
-                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
-                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
-                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
-                                                        , STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
-                                                        , STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
-                                                        , STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
-                                                        , 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_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT
-                                                        , STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT
-                                                        , STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR
-                                                        , STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR
-                                                        , STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR
-                                                        , STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR
-                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR
-                                                        , 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_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR
-                                                        , 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_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV
-                                                        , 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_LAYER_SETTINGS_CREATE_INFO_EXT
-                                                        , 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
-                                                        , STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC
-                                                        , STRUCTURE_TYPE_TILE_PROPERTIES_QCOM
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM
-                                                        , STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
-                                                        , STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT
-                                                        , 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
-                                                        , STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV
-                                                        , STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV
-                                                        , STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT
-                                                        , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG
-                                                        , STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG
-                                                        , STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT
-                                                        , 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_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR
-                                                        , 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
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV
-                                                        , STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM
-                                                        , STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM
-                                                        , STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM
-                                                        , STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE
-                                                        , STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM
-                                                        , STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT
-                                                        , STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT
-                                                        , STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT
-                                                        , STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT
-                                                        , STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT
-                                                        , STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT
-                                                        , STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
-                                                        , 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
-                                                        , STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI
-                                                        , STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI
-                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA
-                                                        , STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA
-                                                        , STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA
-                                                        , STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA
-                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA
-                                                        , STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA
-                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA
-                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA
-                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA
-                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA
-                                                        , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA
-                                                        , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA
-                                                        , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA
-                                                        , STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA
-                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT
-                                                        , STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT
-                                                        , 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_COMPRESSION_CONTROL_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV
-                                                        , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD
-                                                        , STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT
-                                                        , STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-                                                        , STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-                                                        , STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-                                                        , STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
-                                                        , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
-                                                        , STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT
-                                                        , STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT
-                                                        , STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT
-                                                        , STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT
-                                                        , STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT
-                                                        , STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT
-                                                        , STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT
-                                                        , STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT
-                                                        , STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT
-                                                        , STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT
-                                                        , STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT
-                                                        , STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV
-                                                        , STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV
-                                                        , STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PRESENT_ID_KHR
-                                                        , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV
-                                                        , STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
-                                                        , 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
-                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV
-                                                        , STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV
-                                                        , STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV
-                                                        , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV
-                                                        , STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV
-                                                        , STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
-                                                        , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT
-                                                        , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT
-                                                        , STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT
-                                                        , STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT
-                                                        , 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
-                                                        , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
-                                                        , STRUCTURE_TYPE_PIPELINE_INFO_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
-                                                        , STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
-                                                        , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
-                                                        , STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
-                                                        , STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_VALIDATION_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV
-                                                        , STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
-                                                        , STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR
-                                                        , STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
-                                                        , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
-                                                        , STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA
-                                                        , STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
-                                                        , STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
-                                                        , STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
-                                                        , STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
-                                                        , STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
-                                                        , STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
-                                                        , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL
-                                                        , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
-                                                        , STRUCTURE_TYPE_CHECKPOINT_DATA_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
-                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV
-                                                        , STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
-                                                        , STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
-                                                        , STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT
-                                                        , STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT
-                                                        , STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
-                                                        , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
-                                                        , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
-                                                        , STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV
-                                                        , STRUCTURE_TYPE_GEOMETRY_AABB_NV
-                                                        , STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
-                                                        , STRUCTURE_TYPE_GEOMETRY_NV
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
-                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT
-                                                        , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
-                                                        , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV
-                                                        , STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
-                                                        , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
-                                                        , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
-                                                        , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
-                                                        , STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
-                                                        , 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
-                                                        , STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
-                                                        , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
-                                                        , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
-                                                        , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
-                                                        , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
-                                                        , STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
-                                                        , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT
-                                                        , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT
-                                                        , STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK
-                                                        , STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK
-                                                        , STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR
-                                                        , STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR
-                                                        , STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR
-                                                        , STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR
-                                                        , STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR
-                                                        , STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR
-                                                        , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR
-                                                        , STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR
-                                                        , STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR
-                                                        , STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR
-                                                        , STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR
-                                                        , STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR
-                                                        , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
-                                                        , STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
-                                                        , STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR
-                                                        , STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
-                                                        , STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
-                                                        , STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
-                                                        , STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG
-                                                        , STRUCTURE_TYPE_HDR_METADATA_EXT
-                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX
-                                                        , STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
-                                                        , STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT
-                                                        , STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT
-                                                        , STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT
-                                                        , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
-                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PRESENT_REGIONS_KHR
-                                                        , STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
-                                                        , STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR
-                                                        , STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR
-                                                        , STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR
-                                                        , STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
-                                                        , STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
-                                                        , STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
-                                                        , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR
-                                                        , STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR
-                                                        , STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR
-                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR
-                                                        , STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR
-                                                        , STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR
-                                                        , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR
-                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT
-                                                        , STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN
-                                                        , STRUCTURE_TYPE_VALIDATION_FLAGS_EXT
-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
-                                                        , STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
-                                                        , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
-                                                        , STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
-                                                        , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV
-                                                        , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV
-                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV
-                                                        , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV
-                                                        , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV
-                                                        , STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP
-                                                        , STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX
-                                                        , STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
-                                                        , STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT
-                                                        , STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
-                                                        , STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD
-                                                        , STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX
-                                                        , STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX
-                                                        , STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX
-                                                        , STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX
-                                                        , STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX
-                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV
-                                                        , STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV
-                                                        , STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT
-                                                        , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT
-                                                        , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT
-                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD
-                                                        , STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
-                                                        , STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR
-                                                        , STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_PRESENT_INFO_KHR
-                                                        , STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR
-                                                        , STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_FAULT_CALLBACK_INFO
-                                                        , STRUCTURE_TYPE_FAULT_DATA
-                                                        , STRUCTURE_TYPE_PIPELINE_POOL_SIZE
-                                                        , STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION
-                                                        , STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO
-                                                        , STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES
-                                                        , STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS
-                                                        , STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES
-                                                        , STRUCTURE_TYPE_FORMAT_PROPERTIES_3
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES
-                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES
-                                                        , STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO
-                                                        , STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO
-                                                        , STRUCTURE_TYPE_RENDERING_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO
-                                                        , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES
-                                                        , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES
-                                                        , STRUCTURE_TYPE_IMAGE_RESOLVE_2
-                                                        , STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2
-                                                        , STRUCTURE_TYPE_IMAGE_BLIT_2
-                                                        , STRUCTURE_TYPE_IMAGE_COPY_2
-                                                        , STRUCTURE_TYPE_BUFFER_COPY_2
-                                                        , STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2
-                                                        , STRUCTURE_TYPE_BLIT_IMAGE_INFO_2
-                                                        , STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2
-                                                        , STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2
-                                                        , STRUCTURE_TYPE_COPY_IMAGE_INFO_2
-                                                        , STRUCTURE_TYPE_COPY_BUFFER_INFO_2
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES
-                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO
-                                                        , STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO
-                                                        , STRUCTURE_TYPE_SUBMIT_INFO_2
-                                                        , STRUCTURE_TYPE_DEPENDENCY_INFO
-                                                        , STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2
-                                                        , STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2
-                                                        , STRUCTURE_TYPE_MEMORY_BARRIER_2
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES
-                                                        , STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO
-                                                        , STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES
-                                                        , STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES
-                                                        , STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO
-                                                        , STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO
-                                                        , STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO
-                                                        , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
-                                                        , STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO
-                                                        , STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO
-                                                        , STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO
-                                                        , STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
-                                                        , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT
-                                                        , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
-                                                        , STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO
-                                                        , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO
-                                                        , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
-                                                        , STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
-                                                        , STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
-                                                        , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
-                                                        , STRUCTURE_TYPE_SUBPASS_END_INFO
-                                                        , STRUCTURE_TYPE_SUBPASS_BEGIN_INFO
-                                                        , STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2
-                                                        , STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2
-                                                        , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2
-                                                        , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2
-                                                        , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2
-                                                        , STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
-                                                        , STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
-                                                        , STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO
-                                                        , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO
-                                                        , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
-                                                        , STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO
-                                                        , STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
-                                                        , STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
-                                                        , STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO
-                                                        , STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO
-                                                        , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO
-                                                        , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO
-                                                        , STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
-                                                        , STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
-                                                        , STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
-                                                        , STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2
-                                                        , STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2
-                                                        , STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2
-                                                        , STRUCTURE_TYPE_FORMAT_PROPERTIES_2
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2
-                                                        , STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2
-                                                        , STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2
-                                                        , STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2
-                                                        , STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2
-                                                        , STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2
-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES
-                                                        , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
-                                                        , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO
-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO
-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO
-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO
-                                                        , STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO
-                                                        , STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
-                                                        , STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
-                                                        , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
-                                                        , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
-                                                        , ..
-                                                        )) where
-
-import Vulkan.Internal.Utils (enumReadPrec)
-import Vulkan.Internal.Utils (enumShowsPrec)
-import GHC.Show (showsPrec)
-import Vulkan.Zero (Zero)
-import Foreign.Storable (Storable)
-import Data.Int (Int32)
-import GHC.Read (Read(readPrec))
-import GHC.Show (Show(showsPrec))
-
--- | VkStructureType - Vulkan structure types (@sType@)
---
--- = 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_KHR_acceleration_structure.AccelerationStructureBuildGeometryInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureBuildSizesInfoKHR',
--- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.AccelerationStructureCaptureDescriptorDataInfoEXT',
--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR',
--- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV',
--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureDeviceAddressInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryAabbsDataKHR',
--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryInstancesDataKHR',
--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryKHR',
--- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureGeometryMotionTrianglesDataNV',
--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR',
--- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureInfoNV',
--- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureMemoryRequirementsInfoNV',
--- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInfoNV',
--- 'Vulkan.Extensions.VK_NV_displacement_micromap.AccelerationStructureTrianglesDisplacementMicromapNV',
--- 'Vulkan.Extensions.VK_EXT_opacity_micromap.AccelerationStructureTrianglesOpacityMicromapEXT',
--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureVersionInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_swapchain.AcquireNextImageInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_performance_query.AcquireProfilingLockInfoKHR',
--- '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',
--- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout',
--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD',
--- 'Vulkan.CStruct.Extends.BaseInStructure',
--- 'Vulkan.CStruct.Extends.BaseOutStructure',
--- 'Vulkan.Extensions.VK_NV_ray_tracing.BindAccelerationStructureMemoryInfoNV',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.BindBufferMemoryDeviceGroupInfo',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo',
--- 'Vulkan.Extensions.VK_KHR_maintenance6.BindDescriptorBufferEmbeddedSamplersInfoEXT',
--- 'Vulkan.Extensions.VK_KHR_maintenance6.BindDescriptorSetsInfoKHR',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.BindImageMemoryDeviceGroupInfo',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo',
--- 'Vulkan.Extensions.VK_KHR_swapchain.BindImageMemorySwapchainInfoKHR',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.BindImagePlaneMemoryInfo',
--- 'Vulkan.Extensions.VK_KHR_maintenance6.BindMemoryStatusKHR',
--- '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',
--- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionConstraintsInfoFUCHSIA',
--- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionCreateInfoFUCHSIA',
--- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA',
--- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionPropertiesFUCHSIA',
--- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferConstraintsInfoFUCHSIA',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferCopy2',
--- 'Vulkan.Core10.Buffer.BufferCreateInfo',
--- 'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferDeviceAddressInfo',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2',
--- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',
--- '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_KHR_calibrated_timestamps.CalibratedTimestampInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_synchronization2.CheckpointData2NV',
--- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.CheckpointDataNV',
--- 'Vulkan.Core10.CommandBuffer.CommandBufferAllocateInfo',
--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo',
--- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT',
--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',
--- '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.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',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferInfo2',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2',
--- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM',
--- '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',
--- 'Vulkan.Extensions.VK_NVX_binary_import.CuFunctionCreateInfoNVX',
--- 'Vulkan.Extensions.VK_NVX_binary_import.CuLaunchInfoNVX',
--- 'Vulkan.Extensions.VK_NVX_binary_import.CuModuleCreateInfoNVX',
--- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.CudaFunctionCreateInfoNV',
--- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.CudaLaunchInfoNV',
--- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.CudaModuleCreateInfoNV',
--- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.D3D12FenceSubmitInfoKHR',
--- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerMarkerInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerObjectNameInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerObjectTagInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportCallbackCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsLabelEXT',
--- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCallbackDataEXT',
--- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectNameInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectTagInfoEXT',
--- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV',
--- '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',
--- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorGetInfoEXT',
--- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo',
--- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfo',
--- 'Vulkan.Core10.DescriptorSet.DescriptorSetAllocateInfo',
--- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.DescriptorSetBindingReferenceVALVE',
--- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetLayoutBindingFlagsCreateInfo',
--- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo',
--- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.DescriptorSetLayoutHostMappingInfoVALVE',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.DescriptorSetLayoutSupport',
--- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountAllocateInfo',
--- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountLayoutSupport',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateCreateInfo',
--- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceBufferMemoryRequirements',
--- 'Vulkan.Core10.Device.DeviceCreateInfo',
--- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceDeviceMemoryReportCreateInfoEXT',
--- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.DeviceDiagnosticsConfigCreateInfoNV',
--- 'Vulkan.Extensions.VK_EXT_display_control.DeviceEventInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultCountsEXT',
--- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultInfoEXT',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupBindSparseInfo',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupCommandBufferBeginInfo',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.DeviceGroupDeviceCreateInfo',
--- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupPresentCapabilitiesKHR',
--- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupPresentInfoKHR',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',
--- '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',
--- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.DevicePrivateDataCreateInfo',
--- 'Vulkan.Core10.Device.DeviceQueueCreateInfo',
--- 'Vulkan.Extensions.VK_KHR_global_priority.DeviceQueueGlobalPriorityCreateInfoKHR',
--- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.DeviceQueueInfo2',
--- 'Vulkan.Extensions.VK_ARM_scheduling_controls.DeviceQueueShaderCoreControlCreateInfoARM',
--- 'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingInfoLUNARG',
--- 'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingListLUNARG',
--- 'Vulkan.Extensions.VK_EXT_directfb_surface.DirectFBSurfaceCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_display_control.DisplayEventInfoEXT',
--- 'Vulkan.Extensions.VK_KHR_display.DisplayModeCreateInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayModeProperties2KHR',
--- 'Vulkan.Extensions.VK_AMD_display_native_hdr.DisplayNativeHdrSurfaceCapabilitiesAMD',
--- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayPlaneCapabilities2KHR',
--- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayPlaneInfo2KHR',
--- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayPlaneProperties2KHR',
--- 'Vulkan.Extensions.VK_EXT_display_control.DisplayPowerInfoEXT',
--- 'Vulkan.Extensions.VK_KHR_display_swapchain.DisplayPresentInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayProperties2KHR',
--- 'Vulkan.Extensions.VK_KHR_display.DisplaySurfaceCreateInfoKHR',
--- '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',
--- 'Vulkan.Extensions.VK_NV_external_memory.ExportMemoryAllocateInfoNV',
--- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ExportMemoryWin32HandleInfoKHR',
--- 'Vulkan.Extensions.VK_NV_external_memory_win32.ExportMemoryWin32HandleInfoNV',
--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalBufferInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalCommandQueueInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalDeviceInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalIOSurfaceInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectsInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalSharedEventInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore.ExportSemaphoreCreateInfo',
--- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ExportSemaphoreWin32HandleInfoKHR',
--- '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',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.ExternalSemaphoreProperties',
--- 'Vulkan.Core10.Fence.FenceCreateInfo',
--- 'Vulkan.Extensions.VK_KHR_external_fence_fd.FenceGetFdInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_external_fence_win32.FenceGetWin32HandleInfoKHR',
--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT',
--- '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',
--- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.FramebufferMixedSamplesCombinationNV',
--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',
--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsMemoryRequirementsInfoNV',
--- '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',
--- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT',
--- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionPropertiesEXT',
--- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageConstraintsInfoFUCHSIA',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2',
--- 'Vulkan.Core10.Image.ImageCreateInfo',
--- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierExplicitCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierListCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierPropertiesEXT',
--- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageFormatConstraintsInfoFUCHSIA',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2',
--- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageMemoryRequirementsInfo2',
--- 'Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface.ImagePipeSurfaceCreateInfoFUCHSIA',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.ImagePlaneMemoryRequirementsInfo',
--- '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_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',
--- 'Vulkan.Core10.ImageView.ImageViewCreateInfo',
--- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX',
--- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.ImageViewMinLodCreateInfoEXT',
--- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM',
--- 'Vulkan.Extensions.VK_EXT_image_sliced_view_of_3d.ImageViewSlicedCreateInfoEXT',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo',
--- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID',
--- 'Vulkan.Extensions.VK_KHR_external_fence_fd.ImportFenceFdInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_external_fence_win32.ImportFenceWin32HandleInfoKHR',
--- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImportMemoryBufferCollectionFUCHSIA',
--- 'Vulkan.Extensions.VK_KHR_external_memory_fd.ImportMemoryFdInfoKHR',
--- 'Vulkan.Extensions.VK_EXT_external_memory_host.ImportMemoryHostPointerInfoEXT',
--- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR',
--- '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_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',
--- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutCreateInfoNV',
--- '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_EXT_layer_settings.LayerSettingsCreateInfoEXT',
--- 'Vulkan.Extensions.VK_MVK_macos_surface.MacOSSurfaceCreateInfoMVK',
--- 'Vulkan.Core10.Memory.MappedMemoryRange',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo',
--- 'Vulkan.Core10.Memory.MemoryAllocateInfo',
--- 'Vulkan.Core10.OtherTypes.MemoryBarrier',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.MemoryBarrier2',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements',
--- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryFdPropertiesKHR',
--- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.MemoryGetAndroidHardwareBufferInfoANDROID',
--- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR',
--- 'Vulkan.Extensions.VK_NV_external_memory_rdma.MemoryGetRemoteAddressInfoNV',
--- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR',
--- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA',
--- 'Vulkan.Extensions.VK_EXT_external_memory_host.MemoryHostPointerPropertiesEXT',
--- 'Vulkan.Extensions.VK_KHR_map_memory2.MemoryMapInfoKHR',
--- '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',
--- 'Vulkan.Extensions.VK_EXT_metal_surface.MetalSurfaceCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildSizesInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapVersionInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT',
--- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT',
--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX',
--- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM',
--- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.MutableDescriptorTypeCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT',
--- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowExecuteInfoNV',
--- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowImageFormatInfoNV',
--- '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',
--- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceMarkerInfoINTEL',
--- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceOverrideInfoINTEL',
--- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceQuerySubmitInfoKHR',
--- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceStreamMarkerInfoINTEL',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage.PhysicalDevice16BitStorageFeatures',
--- 'Vulkan.Extensions.VK_EXT_4444_formats.PhysicalDevice4444FormatsFeaturesEXT',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage.PhysicalDevice8BitStorageFeatures',
--- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.PhysicalDeviceASTCDecodeFeaturesEXT',
--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructureFeaturesKHR',
--- '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',
--- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.PhysicalDeviceBorderColorSwizzleFeaturesEXT',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures',
--- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT',
--- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderFeaturesHUAWEI',
--- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',
--- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI',
--- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',
--- '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_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_NV_cuda_kernel_launch.PhysicalDeviceCudaKernelLaunchFeaturesNV',
--- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.PhysicalDeviceCudaKernelLaunchPropertiesNV',
--- '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',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties',
--- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT',
--- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT',
--- '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',
--- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV',
--- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PhysicalDeviceDiscardRectanglePropertiesEXT',
--- 'Vulkan.Extensions.VK_NV_displacement_micromap.PhysicalDeviceDisplacementMicromapFeaturesNV',
--- 'Vulkan.Extensions.VK_NV_displacement_micromap.PhysicalDeviceDisplacementMicromapPropertiesNV',
--- '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_KHR_dynamic_rendering_local_read.PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR',
--- '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',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties',
--- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT',
--- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT',
--- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',
--- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM',
--- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',
--- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesKHR',
--- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricPropertiesKHR',
--- 'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT',
--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV',
--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV',
--- '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',
--- 'Vulkan.Extensions.VK_EXT_image_compression_control.PhysicalDeviceImageCompressionControlFeaturesEXT',
--- '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',
--- 'Vulkan.Extensions.VK_EXT_image_sliced_view_of_3d.PhysicalDeviceImageSlicedViewOf3DFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_filter_cubic.PhysicalDeviceImageViewImageFormatInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.PhysicalDeviceImageViewMinLodFeaturesEXT',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures',
--- 'Vulkan.Extensions.VK_KHR_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesKHR',
--- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV',
--- '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_KHR_line_rasterization.PhysicalDeviceLineRasterizationFeaturesKHR',
--- 'Vulkan.Extensions.VK_KHR_line_rasterization.PhysicalDeviceLineRasterizationPropertiesKHR',
--- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV',
--- '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_KHR_maintenance6.PhysicalDeviceMaintenance6FeaturesKHR',
--- 'Vulkan.Extensions.VK_KHR_maintenance6.PhysicalDeviceMaintenance6PropertiesKHR',
--- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT',
--- 'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionFeaturesNV',
--- 'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionPropertiesNV',
--- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceMemoryProperties2',
--- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderFeaturesEXT',
--- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV',
--- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderPropertiesEXT',
--- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV',
--- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawPropertiesEXT',
--- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewFeatures',
--- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX',
--- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM',
--- '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',
--- 'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowFeaturesNV',
--- 'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowPropertiesNV',
--- 'Vulkan.Extensions.VK_EXT_pci_bus_info.PhysicalDevicePCIBusInfoPropertiesEXT',
--- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT',
--- 'Vulkan.Extensions.VK_NV_per_stage_descriptor_set.PhysicalDevicePerStageDescriptorSetFeaturesNV',
--- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR',
--- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR',
--- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures',
--- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',
--- 'Vulkan.Extensions.VK_EXT_pipeline_library_group_handles.PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_pipeline_properties.PhysicalDevicePipelinePropertiesFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_pipeline_protected_access.PhysicalDevicePipelineProtectedAccessFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessPropertiesEXT',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties',
--- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',
--- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR',
--- 'Vulkan.Extensions.VK_NV_present_barrier.PhysicalDevicePresentBarrierFeaturesNV',
--- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR',
--- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR',
--- 'Vulkan.Extensions.VK_EXT_primitive_topology_list_restart.PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_primitives_generated_query.PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT',
--- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PhysicalDevicePrivateDataFeatures',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',
--- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures',
--- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties',
--- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT',
--- 'Vulkan.Extensions.VK_KHR_push_descriptor.PhysicalDevicePushDescriptorPropertiesKHR',
--- 'Vulkan.Extensions.VK_EXT_rgba10x6_formats.PhysicalDeviceRGBA10X6FormatsFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access.PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT',
--- 'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR',
--- 'Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder.PhysicalDeviceRayTracingInvocationReorderFeaturesNV',
--- 'Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder.PhysicalDeviceRayTracingInvocationReorderPropertiesNV',
--- '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_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR',
--- 'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR',
--- 'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV',
--- 'Vulkan.Extensions.VK_IMG_relaxed_line_rasterization.PhysicalDeviceRelaxedLineRasterizationFeaturesIMG',
--- 'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedFeaturesARM',
--- 'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedPropertiesARM',
--- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',
--- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',
--- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT',
--- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.PhysicalDeviceSamplerFilterMinmaxProperties',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures',
--- 'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures',
--- 'Vulkan.Extensions.VK_ARM_scheduling_controls.PhysicalDeviceSchedulingControlsFeaturesARM',
--- 'Vulkan.Extensions.VK_ARM_scheduling_controls.PhysicalDeviceSchedulingControlsPropertiesARM',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',
--- 'Vulkan.Extensions.VK_EXT_shader_atomic_float2.PhysicalDeviceShaderAtomicFloat2FeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features',
--- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',
--- 'Vulkan.Extensions.VK_ARM_shader_core_builtins.PhysicalDeviceShaderCoreBuiltinsFeaturesARM',
--- 'Vulkan.Extensions.VK_ARM_shader_core_builtins.PhysicalDeviceShaderCoreBuiltinsPropertiesARM',
--- '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.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.Extensions.VK_KHR_shader_expect_assume.PhysicalDeviceShaderExpectAssumeFeaturesKHR',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features',
--- 'Vulkan.Extensions.VK_KHR_shader_float_controls2.PhysicalDeviceShaderFloatControls2FeaturesKHR',
--- 'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT',
--- 'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeatures',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductProperties',
--- 'Vulkan.Extensions.VK_INTEL_shader_integer_functions2.PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL',
--- 'Vulkan.Extensions.VK_KHR_shader_maximal_reconvergence.PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR',
--- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierPropertiesEXT',
--- 'Vulkan.Extensions.VK_EXT_shader_object.PhysicalDeviceShaderObjectFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_shader_object.PhysicalDeviceShaderObjectPropertiesEXT',
--- 'Vulkan.Extensions.VK_KHR_shader_quad_control.PhysicalDeviceShaderQuadControlFeaturesKHR',
--- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV',
--- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsPropertiesNV',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures',
--- 'Vulkan.Extensions.VK_KHR_shader_subgroup_rotate.PhysicalDeviceShaderSubgroupRotateFeaturesKHR',
--- 'Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow.PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeatures',
--- 'Vulkan.Extensions.VK_EXT_shader_tile_image.PhysicalDeviceShaderTileImageFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_shader_tile_image.PhysicalDeviceShaderTileImagePropertiesEXT',
--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImageFeaturesNV',
--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2',
--- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties',
--- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures',
--- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlProperties',
--- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.PhysicalDeviceSubpassMergeFeedbackFeaturesEXT',
--- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI',
--- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingPropertiesHUAWEI',
--- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR',
--- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.PhysicalDeviceSwapchainMaintenance1FeaturesEXT',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features',
--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT',
--- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',
--- 'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures',
--- 'Vulkan.Extensions.VK_QCOM_tile_properties.PhysicalDeviceTilePropertiesFeaturesQCOM',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreFeatures',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreProperties',
--- 'Vulkan.Core13.Promoted_From_VK_EXT_tooling_info.PhysicalDeviceToolProperties',
--- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures',
--- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesKHR',
--- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT',
--- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR',
--- '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>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoMaintenance1FeaturesKHR VkPhysicalDeviceVideoMaintenance1FeaturesKHR>,
--- 'Vulkan.Core12.PhysicalDeviceVulkan11Features',
--- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties',
--- 'Vulkan.Core12.PhysicalDeviceVulkan12Features',
--- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties',
--- 'Vulkan.Core13.PhysicalDeviceVulkan13Features',
--- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties',
--- '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',
--- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT',
--- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',
--- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT',
--- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',
--- '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',
--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo',
--- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableInternalRepresentationKHR',
--- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutablePropertiesKHR',
--- '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',
--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR',
--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo',
--- 'Vulkan.Extensions.VK_EXT_pipeline_properties.PipelinePropertiesIdentifierEXT',
--- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT',
--- 'Vulkan.Extensions.VK_KHR_line_rasterization.PipelineRasterizationLineStateCreateInfoKHR',
--- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT',
--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo',
--- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD',
--- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo',
--- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV',
--- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT',
--- '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',
--- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR',
--- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo',
--- '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.Core10.Pipeline.PipelineViewportStateCreateInfo',
--- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV',
--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV',
--- 'Vulkan.Extensions.VK_GGP_frame_token.PresentFrameTokenGGP',
--- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR',
--- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_incremental_present.PresentRegionsKHR',
--- 'Vulkan.Extensions.VK_GOOGLE_display_timing.PresentTimesInfoGOOGLE',
--- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PrivateDataSlotCreateInfo',
--- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.ProtectedSubmitInfo',
--- 'Vulkan.Extensions.VK_KHR_maintenance6.PushConstantsInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_maintenance6.PushDescriptorSetInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_maintenance6.PushDescriptorSetWithTemplateInfoKHR',
--- 'Vulkan.Extensions.VK_NV_low_latency.QueryLowLatencySupportNV',
--- 'Vulkan.Core10.Query.QueryPoolCreateInfo',
--- 'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR',
--- 'Vulkan.Extensions.VK_INTEL_performance_query.QueryPoolPerformanceQueryCreateInfoINTEL',
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR VkQueryPoolVideoEncodeFeedbackCreateInfoKHR>,
--- 'Vulkan.Extensions.VK_KHR_synchronization2.QueueFamilyCheckpointProperties2NV',
--- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV',
--- 'Vulkan.Extensions.VK_KHR_global_priority.QueueFamilyGlobalPriorityPropertiesKHR',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2',
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR VkQueueFamilyQueryResultStatusPropertiesKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyVideoPropertiesKHR VkQueueFamilyVideoPropertiesKHR>,
--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',
--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',
--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineInterfaceCreateInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingShaderGroupCreateInfoKHR',
--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingShaderGroupCreateInfoNV',
--- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.ReleaseSwapchainImagesInfoEXT',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',
--- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo',
--- 'Vulkan.Core10.Pass.RenderPassCreateInfo',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2',
--- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationControlEXT',
--- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationFeedbackCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.RenderPassInputAttachmentAspectCreateInfo',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo',
--- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',
--- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM',
--- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeInfoARM',
--- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM',
--- '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_local_read.RenderingAttachmentLocationInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT',
--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo',
--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
--- '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',
--- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR',
--- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreSignalInfo',
--- '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_KHR_maintenance6.SetDescriptorBufferOffsetsInfoEXT',
--- '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',
--- 'Vulkan.Extensions.VK_EXT_validation_cache.ShaderModuleValidationCacheCreateInfoEXT',
--- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.SharedPresentSurfaceCapabilitiesKHR',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.SparseImageFormatProperties2',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2',
--- 'Vulkan.Extensions.VK_GGP_stream_descriptor_surface.StreamDescriptorSurfaceCreateInfoGGP',
--- 'Vulkan.Core10.Queue.SubmitInfo',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassBeginInfo',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassEndInfo',
--- '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_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',
--- 'Vulkan.Extensions.VK_NV_present_barrier.SurfaceCapabilitiesPresentBarrierNV',
--- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceFormat2KHR',
--- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT',
--- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeCompatibilityEXT',
--- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT',
--- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT',
--- 'Vulkan.Extensions.VK_KHR_surface_protected_capabilities.SurfaceProtectedCapabilitiesKHR',
--- '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',
--- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentScalingCreateInfoEXT',
--- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.SysmemColorSpaceFUCHSIA',
--- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD',
--- 'Vulkan.Extensions.VK_QCOM_tile_properties.TilePropertiesQCOM',
--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo',
--- 'Vulkan.Extensions.VK_EXT_validation_cache.ValidationCacheCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_validation_flags.ValidationFlagsEXT',
--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT',
--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputBindingDescription2EXT',
--- 'Vulkan.Extensions.VK_NN_vi_surface.ViSurfaceCreateInfoNN',
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBeginCodingInfoKHR VkVideoBeginCodingInfoKHR>,
--- <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#VkVideoCodingControlInfoKHR VkVideoCodingControlInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeAV1CapabilitiesKHR VkVideoDecodeAV1CapabilitiesKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeAV1DpbSlotInfoKHR VkVideoDecodeAV1DpbSlotInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeAV1PictureInfoKHR VkVideoDecodeAV1PictureInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeAV1ProfileInfoKHR VkVideoDecodeAV1ProfileInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeAV1SessionParametersCreateInfoKHR VkVideoDecodeAV1SessionParametersCreateInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeCapabilitiesKHR VkVideoDecodeCapabilitiesKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesKHR VkVideoDecodeH264CapabilitiesKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264DpbSlotInfoKHR VkVideoDecodeH264DpbSlotInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264PictureInfoKHR VkVideoDecodeH264PictureInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileInfoKHR VkVideoDecodeH264ProfileInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersAddInfoKHR VkVideoDecodeH264SessionParametersAddInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersCreateInfoKHR VkVideoDecodeH264SessionParametersCreateInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265CapabilitiesKHR VkVideoDecodeH265CapabilitiesKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265DpbSlotInfoKHR VkVideoDecodeH265DpbSlotInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265PictureInfoKHR VkVideoDecodeH265PictureInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileInfoKHR VkVideoDecodeH265ProfileInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersAddInfoKHR VkVideoDecodeH265SessionParametersAddInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersCreateInfoKHR VkVideoDecodeH265SessionParametersCreateInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeUsageInfoKHR VkVideoDecodeUsageInfoKHR>,
--- <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#VkVideoEncodeH264CapabilitiesKHR VkVideoEncodeH264CapabilitiesKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264DpbSlotInfoKHR VkVideoEncodeH264DpbSlotInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264GopRemainingFrameInfoKHR VkVideoEncodeH264GopRemainingFrameInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264NaluSliceInfoKHR VkVideoEncodeH264NaluSliceInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264PictureInfoKHR VkVideoEncodeH264PictureInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileInfoKHR VkVideoEncodeH264ProfileInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264QualityLevelPropertiesKHR VkVideoEncodeH264QualityLevelPropertiesKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlInfoKHR VkVideoEncodeH264RateControlInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlLayerInfoKHR VkVideoEncodeH264RateControlLayerInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionCreateInfoKHR VkVideoEncodeH264SessionCreateInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersAddInfoKHR VkVideoEncodeH264SessionParametersAddInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersCreateInfoKHR VkVideoEncodeH264SessionParametersCreateInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersFeedbackInfoKHR VkVideoEncodeH264SessionParametersFeedbackInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersGetInfoKHR VkVideoEncodeH264SessionParametersGetInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265CapabilitiesKHR VkVideoEncodeH265CapabilitiesKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265DpbSlotInfoKHR VkVideoEncodeH265DpbSlotInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265GopRemainingFrameInfoKHR VkVideoEncodeH265GopRemainingFrameInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265NaluSliceSegmentInfoKHR VkVideoEncodeH265NaluSliceSegmentInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265PictureInfoKHR VkVideoEncodeH265PictureInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileInfoKHR VkVideoEncodeH265ProfileInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265QualityLevelPropertiesKHR VkVideoEncodeH265QualityLevelPropertiesKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlInfoKHR VkVideoEncodeH265RateControlInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlLayerInfoKHR VkVideoEncodeH265RateControlLayerInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionCreateInfoKHR VkVideoEncodeH265SessionCreateInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersAddInfoKHR VkVideoEncodeH265SessionParametersAddInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersCreateInfoKHR VkVideoEncodeH265SessionParametersCreateInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersFeedbackInfoKHR VkVideoEncodeH265SessionParametersFeedbackInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersGetInfoKHR VkVideoEncodeH265SessionParametersGetInfoKHR>,
--- <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>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoInlineQueryInfoKHR VkVideoInlineQueryInfoKHR>,
--- <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#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoReferenceSlotInfoKHR VkVideoReferenceSlotInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionMemoryRequirementsKHR VkVideoSessionMemoryRequirementsKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersCreateInfoKHR VkVideoSessionParametersCreateInfoKHR>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersUpdateInfoKHR VkVideoSessionParametersUpdateInfoKHR>,
--- 'Vulkan.Extensions.VK_KHR_wayland_surface.WaylandSurfaceCreateInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR',
--- 'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV',
--- 'Vulkan.Extensions.VK_KHR_win32_surface.Win32SurfaceCreateInfoKHR',
--- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet',
--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.WriteDescriptorSetAccelerationStructureKHR',
--- 'Vulkan.Extensions.VK_NV_ray_tracing.WriteDescriptorSetAccelerationStructureNV',
--- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock',
--- 'Vulkan.Extensions.VK_KHR_xcb_surface.XcbSurfaceCreateInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_xlib_surface.XlibSurfaceCreateInfoKHR'
-newtype StructureType = StructureType Int32
-  deriving newtype (Eq, Ord, Storable, Zero)
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_APPLICATION_INFO"
-pattern STRUCTURE_TYPE_APPLICATION_INFO = StructureType 0
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"
-pattern STRUCTURE_TYPE_INSTANCE_CREATE_INFO = StructureType 1
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"
-pattern STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = StructureType 2
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"
-pattern STRUCTURE_TYPE_DEVICE_CREATE_INFO = StructureType 3
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBMIT_INFO"
-pattern STRUCTURE_TYPE_SUBMIT_INFO = StructureType 4
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"
-pattern STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = StructureType 5
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"
-pattern STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = StructureType 6
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"
-pattern STRUCTURE_TYPE_BIND_SPARSE_INFO = StructureType 7
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"
-pattern STRUCTURE_TYPE_FENCE_CREATE_INFO = StructureType 8
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"
-pattern STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = StructureType 9
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"
-pattern STRUCTURE_TYPE_EVENT_CREATE_INFO = StructureType 10
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"
-pattern STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = StructureType 11
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"
-pattern STRUCTURE_TYPE_BUFFER_CREATE_INFO = StructureType 12
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"
-pattern STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = StructureType 13
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"
-pattern STRUCTURE_TYPE_IMAGE_CREATE_INFO = StructureType 14
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"
-pattern STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = StructureType 15
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"
-pattern STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = StructureType 16
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = StructureType 17
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = StructureType 18
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = StructureType 19
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = StructureType 20
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = StructureType 21
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = StructureType 22
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = StructureType 23
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = StructureType 24
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = StructureType 25
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = StructureType 26
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = StructureType 27
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"
-pattern STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = StructureType 28
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"
-pattern STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = StructureType 29
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = StructureType 30
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"
-pattern STRUCTURE_TYPE_SAMPLER_CREATE_INFO = StructureType 31
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"
-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = StructureType 32
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"
-pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = StructureType 33
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"
-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = StructureType 34
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"
-pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = StructureType 35
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"
-pattern STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = StructureType 36
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"
-pattern STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = StructureType 37
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"
-pattern STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = StructureType 38
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"
-pattern STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = StructureType 39
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"
-pattern STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = StructureType 40
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"
-pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = StructureType 41
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"
-pattern STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = StructureType 42
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"
-pattern STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = StructureType 43
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"
-pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = StructureType 44
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"
-pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = StructureType 45
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_BARRIER"
-pattern STRUCTURE_TYPE_MEMORY_BARRIER = StructureType 46
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO"
-pattern STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = StructureType 47
-
--- 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_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT"
-pattern STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = StructureType 1000545008
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT"
-pattern STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = StructureType 1000545007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR"
-pattern STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = StructureType 1000545006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR"
-pattern STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = StructureType 1000545005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR"
-pattern STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = StructureType 1000545004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR"
-pattern STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = StructureType 1000545003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR"
-pattern STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = StructureType 1000545002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = StructureType 1000545001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = StructureType 1000545000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = StructureType 1000544000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR"
-pattern STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = StructureType 1000184000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = StructureType 1000259002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = StructureType 1000259001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = StructureType 1000259000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = StructureType 1000265000
-
--- 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_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = StructureType 1000528000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = StructureType 1000190002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = StructureType 1000190001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = StructureType 1000525000
-
--- 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_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = StructureType 1000516000
-
--- 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
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = StructureType 1000497001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = StructureType 1000497000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = StructureType 1000496000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = StructureType 1000351002
-
--- 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
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = StructureType 1000490000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = StructureType 1000488000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC"
-pattern STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = StructureType 1000485001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = StructureType 1000485000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM"
-pattern STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = StructureType 1000484001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = StructureType 1000484000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"
-pattern STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = StructureType 1000352002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"
-pattern STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = StructureType 1000352001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = StructureType 1000482002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = StructureType 1000482001
-
--- 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
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = StructureType 1000465000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV"
-pattern STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = StructureType 1000464010
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV"
-pattern STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = StructureType 1000464005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = StructureType 1000464004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = StructureType 1000464003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV"
-pattern STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = StructureType 1000464002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = StructureType 1000464001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = StructureType 1000464000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = StructureType 1000342000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT"
-pattern STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = StructureType 1000462003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = StructureType 1000462002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = StructureType 1000462001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = StructureType 1000462000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG"
-pattern STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = StructureType 1000459001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG"
-pattern STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = StructureType 1000459000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = StructureType 1000458003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = StructureType 1000458002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT"
-pattern STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = StructureType 1000458001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = StructureType 1000458000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = StructureType 1000455001
-
--- 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
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = StructureType 1000440001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = StructureType 1000440000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = StructureType 1000437000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = StructureType 1000434000
-
--- 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
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = StructureType 1000427000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = StructureType 1000426001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = StructureType 1000426000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"
-pattern STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = StructureType 1000425002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = StructureType 1000425001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = StructureType 1000425000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM"
-pattern STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = StructureType 1000424004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM"
-pattern STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = StructureType 1000424003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM"
-pattern STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = StructureType 1000424002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = StructureType 1000424001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = StructureType 1000424000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = StructureType 1000422000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = StructureType 1000421000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE"
-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = StructureType 1000420002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE"
-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = StructureType 1000420001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = StructureType 1000420000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = StructureType 1000418001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = StructureType 1000418000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = StructureType 1000417002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = StructureType 1000417001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM"
-pattern STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = StructureType 1000417000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = StructureType 1000416000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = StructureType 1000415000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = StructureType 1000412000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = StructureType 1000411001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = StructureType 1000411000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = StructureType 1000404002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = StructureType 1000404001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = StructureType 1000404000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = StructureType 1000397002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = StructureType 1000397001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = StructureType 1000397000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = StructureType 1000396009
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT"
-pattern STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = StructureType 1000396008
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = StructureType 1000396007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = StructureType 1000396006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = StructureType 1000396005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT"
-pattern STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = StructureType 1000396004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT"
-pattern STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = StructureType 1000396003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT"
-pattern STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = StructureType 1000396002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT"
-pattern STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = StructureType 1000396001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT"
-pattern STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = StructureType 1000396000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = StructureType 1000395001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = StructureType 1000395000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = StructureType 1000393000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = StructureType 1000392001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = StructureType 1000392000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = StructureType 1000391001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = StructureType 1000391000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = StructureType 1000386000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = StructureType 1000382000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = StructureType 1000381001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = StructureType 1000381000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX"
-pattern STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = StructureType 1000378000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = StructureType 1000377000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT"
-pattern STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = StructureType 1000376002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT"
-pattern STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = StructureType 1000376001
-
--- 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
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT"
-pattern STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = StructureType 1000372000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = StructureType 1000371001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV"
-pattern STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = StructureType 1000371000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = StructureType 1000370000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = StructureType 1000369002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = StructureType 1000369001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"
-pattern STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = StructureType 1000369000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA"
-pattern STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = StructureType 1000366009
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA"
-pattern STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = StructureType 1000366008
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA"
-pattern STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = StructureType 1000366007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA"
-pattern STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = StructureType 1000366006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA"
-pattern STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = StructureType 1000366005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA"
-pattern STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = StructureType 1000366004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA"
-pattern STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = StructureType 1000366003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA"
-pattern STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = StructureType 1000366002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA"
-pattern STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = StructureType 1000366001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA"
-pattern STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = StructureType 1000366000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA"
-pattern STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000365001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"
-pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000365000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA"
-pattern STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000364002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA"
-pattern STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = StructureType 1000364001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA"
-pattern STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000364000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = StructureType 1000356000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = StructureType 1000355001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = StructureType 1000355000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT"
-pattern STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = StructureType 1000354001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = StructureType 1000354000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = StructureType 1000353000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000352000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = StructureType 1000346000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = StructureType 1000344000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT"
-pattern STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = StructureType 1000341002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT"
-pattern STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = StructureType 1000341001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = StructureType 1000341000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = StructureType 1000340000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = StructureType 1000339000
-
--- 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_COMPRESSION_CONTROL_EXT"
-pattern STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = StructureType 1000338001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = StructureType 1000338000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = StructureType 1000336000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM"
-pattern STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = StructureType 1000333000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = StructureType 1000332001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = StructureType 1000332000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = StructureType 1000330000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = StructureType 1000328001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = StructureType 1000328000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = StructureType 1000327002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = StructureType 1000327001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = StructureType 1000327000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = StructureType 1000326002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = StructureType 1000326001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = StructureType 1000326000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = StructureType 1000323000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = StructureType 1000322000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = StructureType 1000203000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = StructureType 1000321000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = StructureType 1000320002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = StructureType 1000320001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = StructureType 1000320000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316009
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT"
-pattern STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = StructureType 1000316012
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT"
-pattern STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = StructureType 1000316011
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = StructureType 1000316010
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
-pattern STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316008
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
-pattern STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
-pattern STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
-pattern STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT"
-pattern STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = StructureType 1000316004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT"
-pattern STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = StructureType 1000316003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = StructureType 1000316002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = StructureType 1000316001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = StructureType 1000316000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV"
-pattern STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = StructureType 1000314009
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV"
-pattern STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = StructureType 1000314008
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT"
-pattern STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = StructureType 1000311011
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT"
-pattern STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = StructureType 1000311010
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT"
-pattern STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = StructureType 1000311009
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT"
-pattern STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = StructureType 1000311008
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT"
-pattern STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = StructureType 1000311007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT"
-pattern STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = StructureType 1000311006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT"
-pattern STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = StructureType 1000311005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT"
-pattern STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = StructureType 1000311004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT"
-pattern STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = StructureType 1000311003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT"
-pattern STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = StructureType 1000311002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT"
-pattern STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = StructureType 1000311001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = StructureType 1000311000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV"
-pattern STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = StructureType 1000310000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = StructureType 1000307004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = StructureType 1000307003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV"
-pattern STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = StructureType 1000307002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = StructureType 1000307001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = StructureType 1000307000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = StructureType 1000300001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = StructureType 1000300000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = StructureType 1000294001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_ID_KHR"
-pattern STRUCTURE_TYPE_PRESENT_ID_KHR = StructureType 1000294000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = StructureType 1000292002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV"
-pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = StructureType 1000292001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = StructureType 1000292000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = StructureType 1000290000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = StructureType 1000287002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = StructureType 1000287001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = StructureType 1000287000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = StructureType 1000286001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = StructureType 1000286000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT"
-pattern STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = StructureType 1000284002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = StructureType 1000284001
-
--- 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
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM"
-pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = StructureType 1000282000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = StructureType 1000281000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"
-pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = StructureType 1000278001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = StructureType 1000278000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = StructureType 1000277007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"
-pattern STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = StructureType 1000277006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV"
-pattern STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = StructureType 1000277005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = StructureType 1000277004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV"
-pattern STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = StructureType 1000277003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = StructureType 1000277002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = StructureType 1000277001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = StructureType 1000277000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT"
-pattern STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = StructureType 1000275005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = StructureType 1000275004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT"
-pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = StructureType 1000275003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = StructureType 1000275002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT"
-pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = StructureType 1000275001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = StructureType 1000275000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT"
-pattern STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = StructureType 1000274002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT"
-pattern STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = StructureType 1000274001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT"
-pattern STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = StructureType 1000274000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = StructureType 1000273000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR"
-pattern STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = StructureType 1000271001
-
--- 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
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR"
-pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = StructureType 1000269004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR"
-pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = StructureType 1000269003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = StructureType 1000269002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR"
-pattern STRUCTURE_TYPE_PIPELINE_INFO_KHR = StructureType 1000269001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = StructureType 1000269000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000267000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = StructureType 1000260000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = StructureType 1000256000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT"
-pattern STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = StructureType 1000255001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT"
-pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = StructureType 1000255002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT"
-pattern STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = StructureType 1000255000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = StructureType 1000254002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = StructureType 1000254001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = StructureType 1000254000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = StructureType 1000252000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = StructureType 1000251000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV"
-pattern STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = StructureType 1000250002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = StructureType 1000250001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = StructureType 1000250000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = StructureType 1000249002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = StructureType 1000249001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = StructureType 1000249000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = StructureType 1000248000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT"
-pattern STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = StructureType 1000247000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = StructureType 1000244002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = StructureType 1000244000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = StructureType 1000240000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR"
-pattern STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = StructureType 1000239000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT"
-pattern STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = StructureType 1000238001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = StructureType 1000238000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = StructureType 1000237000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = StructureType 1000235000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = StructureType 1000234000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR"
-pattern STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = StructureType 1000232002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR"
-pattern STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = StructureType 1000232001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = StructureType 1000232000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = StructureType 1000229000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = StructureType 1000227000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = StructureType 1000226004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = StructureType 1000226003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = StructureType 1000226002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = StructureType 1000226001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"
-pattern STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = StructureType 1000226000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = StructureType 1000218002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = StructureType 1000218001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = StructureType 1000218000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = StructureType 1000217000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA"
-pattern STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = StructureType 1000214000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD"
-pattern STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = StructureType 1000213001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD"
-pattern STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = StructureType 1000213000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = StructureType 1000212000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL"
-pattern STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = StructureType 1000210005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL"
-pattern STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = StructureType 1000210004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL"
-pattern STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = StructureType 1000210003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL"
-pattern STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = StructureType 1000210002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL"
-pattern STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = StructureType 1000210001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL"
-pattern STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = StructureType 1000210000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = StructureType 1000209000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = StructureType 1000206001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV"
-pattern STRUCTURE_TYPE_CHECKPOINT_DATA_NV = StructureType 1000206000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = StructureType 1000205002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = StructureType 1000205000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = StructureType 1000204000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = StructureType 1000202001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = StructureType 1000202000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = StructureType 1000201000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP"
-pattern STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = StructureType 1000191000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = StructureType 1000190000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD"
-pattern STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = StructureType 1000189000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = StructureType 1000388001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = StructureType 1000388000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = StructureType 1000174000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = StructureType 1000185000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD"
-pattern STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = StructureType 1000183000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = StructureType 1000181000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = StructureType 1000178002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = StructureType 1000178001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT"
-pattern STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = StructureType 1000178000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = StructureType 1000170001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = StructureType 1000170000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = StructureType 1000166001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = StructureType 1000166000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = StructureType 1000165012
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = StructureType 1000165011
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = StructureType 1000165009
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = StructureType 1000165008
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV"
-pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = StructureType 1000165007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV"
-pattern STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = StructureType 1000165006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV"
-pattern STRUCTURE_TYPE_GEOMETRY_AABB_NV = StructureType 1000165005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV"
-pattern STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = StructureType 1000165004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GEOMETRY_NV"
-pattern STRUCTURE_TYPE_GEOMETRY_NV = StructureType 1000165003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = StructureType 1000165001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = StructureType 1000165000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = StructureType 1000164005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = StructureType 1000164002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = StructureType 1000164001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = StructureType 1000164000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = StructureType 1000163001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = StructureType 1000163000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = StructureType 1000160001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = StructureType 1000160000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT"
-pattern STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = StructureType 1000158006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = StructureType 1000158005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = StructureType 1000158004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = StructureType 1000158003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = StructureType 1000158002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT"
-pattern STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = StructureType 1000158000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = StructureType 1000154001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = StructureType 1000154000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = StructureType 1000152000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = StructureType 1000348013
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = StructureType 1000150018
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = StructureType 1000150016
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = StructureType 1000150015
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = StructureType 1000347001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = StructureType 1000347000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = StructureType 1000150020
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = StructureType 1000150017
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = StructureType 1000150014
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = StructureType 1000150013
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR"
-pattern STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = StructureType 1000150012
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR"
-pattern STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = StructureType 1000150011
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR"
-pattern STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = StructureType 1000150010
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = StructureType 1000150009
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = StructureType 1000150006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = StructureType 1000150005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = StructureType 1000150004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = StructureType 1000150003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = StructureType 1000150002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR"
-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = StructureType 1000150000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR"
-pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = StructureType 1000150007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = StructureType 1000149000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = StructureType 1000148002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = StructureType 1000148001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = StructureType 1000148000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = StructureType 1000143004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = StructureType 1000143003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = StructureType 1000143002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT"
-pattern STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = StructureType 1000143001
-
--- 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
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"
-pattern STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = StructureType 1000129005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"
-pattern STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = StructureType 1000129004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"
-pattern STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = StructureType 1000129003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"
-pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = StructureType 1000129002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"
-pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = StructureType 1000129001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"
-pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = StructureType 1000129000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = StructureType 1000128004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"
-pattern STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = StructureType 1000128003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT"
-pattern STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = StructureType 1000128002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT"
-pattern STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = StructureType 1000128001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"
-pattern STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = StructureType 1000128000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK"
-pattern STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = StructureType 1000123000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK"
-pattern STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = StructureType 1000122000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR"
-pattern STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = StructureType 1000121004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR"
-pattern STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = StructureType 1000121003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR"
-pattern STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = StructureType 1000121002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR"
-pattern STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = StructureType 1000121001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR"
-pattern STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = StructureType 1000121000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR"
-pattern STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = StructureType 1000119002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR"
-pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = StructureType 1000119001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = StructureType 1000119000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR"
-pattern STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR = StructureType 1000116007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR"
-pattern STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = StructureType 1000116006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR"
-pattern STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = StructureType 1000116005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR"
-pattern STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = StructureType 1000116004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR"
-pattern STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = StructureType 1000116003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = StructureType 1000116002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = StructureType 1000116001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = StructureType 1000116000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR"
-pattern STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = StructureType 1000115001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR"
-pattern STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = StructureType 1000115000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR"
-pattern STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = StructureType 1000114002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"
-pattern STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = StructureType 1000114001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"
-pattern STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = StructureType 1000114000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR"
-pattern STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = StructureType 1000111000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = StructureType 1000110000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HDR_METADATA_EXT"
-pattern STRUCTURE_TYPE_HDR_METADATA_EXT = StructureType 1000105000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = StructureType 1000102001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = StructureType 1000102000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = StructureType 1000101001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = StructureType 1000101000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = StructureType 1000099001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = StructureType 1000099000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = StructureType 1000098000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = StructureType 1000097000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE"
-pattern STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = StructureType 1000092000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = StructureType 1000091003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT"
-pattern STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = StructureType 1000091002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT"
-pattern STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = StructureType 1000091001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT"
-pattern STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = StructureType 1000091000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"
-pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = StructureType 1000090000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = StructureType 1000087000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR"
-pattern STRUCTURE_TYPE_PRESENT_REGIONS_KHR = StructureType 1000084000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT"
-pattern STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = StructureType 1000081002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = StructureType 1000081001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"
-pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = StructureType 1000081000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = StructureType 1000080000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR"
-pattern STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = StructureType 1000079001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR"
-pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = StructureType 1000079000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR"
-pattern STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = StructureType 1000078003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR"
-pattern STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = StructureType 1000078002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"
-pattern STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = StructureType 1000078001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"
-pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = StructureType 1000078000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR"
-pattern STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = StructureType 1000075000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR"
-pattern STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = StructureType 1000074002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = StructureType 1000074001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR"
-pattern STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = StructureType 1000074000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR"
-pattern STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = StructureType 1000073003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR"
-pattern STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = StructureType 1000073002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR"
-pattern STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = StructureType 1000073001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR"
-pattern STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = StructureType 1000073000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = StructureType 1000068002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = StructureType 1000068001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = StructureType 1000068000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = StructureType 1000067001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT"
-pattern STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = StructureType 1000067000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN"
-pattern STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = StructureType 1000062000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"
-pattern STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = StructureType 1000061000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = StructureType 1000060012
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR"
-pattern STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = StructureType 1000060011
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR"
-pattern STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = StructureType 1000060010
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"
-pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = StructureType 1000060009
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = StructureType 1000060008
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"
-pattern STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = StructureType 1000060007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"
-pattern STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = StructureType 1000058000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"
-pattern STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = StructureType 1000057001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"
-pattern STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = StructureType 1000057000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV"
-pattern STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = StructureType 1000056001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = StructureType 1000056000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = StructureType 1000050000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP"
-pattern STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = StructureType 1000049000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX"
-pattern STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = StructureType 1000044009
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD"
-pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = StructureType 1000044008
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"
-pattern STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = StructureType 1000044007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"
-pattern STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = StructureType 1000044006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD"
-pattern STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = StructureType 1000041000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX"
-pattern STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = StructureType 1000030001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX"
-pattern STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = StructureType 1000030000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX"
-pattern STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = StructureType 1000029002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"
-pattern STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = StructureType 1000029001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"
-pattern STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = StructureType 1000029000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = StructureType 1000028002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = StructureType 1000028001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = StructureType 1000028000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV"
-pattern STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = StructureType 1000026002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = StructureType 1000026001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV"
-pattern STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = StructureType 1000026000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT"
-pattern STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = StructureType 1000022002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT"
-pattern STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = StructureType 1000022001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT"
-pattern STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = StructureType 1000022000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"
-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = StructureType 1000018000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = StructureType 1000011000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = StructureType 1000009000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = StructureType 1000008000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = StructureType 1000006000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = StructureType 1000005000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = StructureType 1000004000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR"
-pattern STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = StructureType 1000003000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = StructureType 1000002001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = StructureType 1000002000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"
-pattern STRUCTURE_TYPE_PRESENT_INFO_KHR = StructureType 1000001001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR"
-pattern STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = StructureType 1000001000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO = StructureType 1000298010
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FAULT_CALLBACK_INFO"
-pattern STRUCTURE_TYPE_FAULT_CALLBACK_INFO = StructureType 1000298008
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FAULT_DATA"
-pattern STRUCTURE_TYPE_FAULT_DATA = StructureType 1000298007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_POOL_SIZE"
-pattern STRUCTURE_TYPE_PIPELINE_POOL_SIZE = StructureType 1000298005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION"
-pattern STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION = StructureType 1000298004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO"
-pattern STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO = StructureType 1000298003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO"
-pattern STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO = StructureType 1000298002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES = StructureType 1000298001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES = StructureType 1000298000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS"
-pattern STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = StructureType 1000413003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS"
-pattern STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = StructureType 1000413002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = StructureType 1000413001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = StructureType 1000413000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3"
-pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = StructureType 1000360000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = StructureType 1000281001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = StructureType 1000280001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = StructureType 1000280000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO"
-pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = StructureType 1000044004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = StructureType 1000044003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = StructureType 1000044002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO"
-pattern STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = StructureType 1000044001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_INFO"
-pattern STRUCTURE_TYPE_RENDERING_INFO = StructureType 1000044000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = StructureType 1000066000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO"
-pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = StructureType 1000138003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK"
-pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = StructureType 1000138002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = StructureType 1000138001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = StructureType 1000138000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = StructureType 1000225002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = StructureType 1000225001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = StructureType 1000225000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2"
-pattern STRUCTURE_TYPE_IMAGE_RESOLVE_2 = StructureType 1000337010
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2"
-pattern STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = StructureType 1000337009
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_BLIT_2"
-pattern STRUCTURE_TYPE_IMAGE_BLIT_2 = StructureType 1000337008
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COPY_2"
-pattern STRUCTURE_TYPE_IMAGE_COPY_2 = StructureType 1000337007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COPY_2"
-pattern STRUCTURE_TYPE_BUFFER_COPY_2 = StructureType 1000337006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2"
-pattern STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = StructureType 1000337005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2"
-pattern STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = StructureType 1000337004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2"
-pattern STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = StructureType 1000337003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2"
-pattern STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = StructureType 1000337002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2"
-pattern STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = StructureType 1000337001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2"
-pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = StructureType 1000337000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = StructureType 1000335000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = StructureType 1000325000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = StructureType 1000314007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO"
-pattern STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = StructureType 1000314006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO"
-pattern STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = StructureType 1000314005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBMIT_INFO_2"
-pattern STRUCTURE_TYPE_SUBMIT_INFO_2 = StructureType 1000314004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEPENDENCY_INFO"
-pattern STRUCTURE_TYPE_DEPENDENCY_INFO = StructureType 1000314003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2"
-pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = StructureType 1000314002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2"
-pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = StructureType 1000314001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2"
-pattern STRUCTURE_TYPE_MEMORY_BARRIER_2 = StructureType 1000314000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = StructureType 1000297000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO"
-pattern STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = StructureType 1000295002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO"
-pattern STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = StructureType 1000295001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = StructureType 1000295000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = StructureType 1000276000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = StructureType 1000245000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = StructureType 1000215000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = StructureType 1000192000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = StructureType 54
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = StructureType 53
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO"
-pattern STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = StructureType 1000257004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO"
-pattern STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = StructureType 1000257003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO"
-pattern STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = StructureType 1000257002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO"
-pattern STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = StructureType 1000244001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = StructureType 1000257000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO"
-pattern STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = StructureType 1000207005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO"
-pattern STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = StructureType 1000207004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO"
-pattern STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = StructureType 1000207003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO"
-pattern STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = StructureType 1000207002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = StructureType 1000207001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = StructureType 1000207000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = StructureType 1000261000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT"
-pattern STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = StructureType 1000241002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT"
-pattern STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = StructureType 1000241001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = StructureType 1000241000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = StructureType 1000175000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = StructureType 1000253000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO"
-pattern STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = StructureType 1000108003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO"
-pattern STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = StructureType 1000108002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO"
-pattern STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = StructureType 1000108001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = StructureType 1000108000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = StructureType 1000211000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO"
-pattern STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = StructureType 1000130001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = StructureType 1000130000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO"
-pattern STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = StructureType 1000246000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = StructureType 1000221000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE"
-pattern STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = StructureType 1000199001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = StructureType 1000199000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT"
-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = StructureType 1000161004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO"
-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = StructureType 1000161003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = StructureType 1000161002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = StructureType 1000161001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO"
-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = StructureType 1000161000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = StructureType 1000197000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = StructureType 1000082000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = StructureType 1000180000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = StructureType 1000196000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = StructureType 1000177000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_END_INFO"
-pattern STRUCTURE_TYPE_SUBPASS_END_INFO = StructureType 1000109006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO"
-pattern STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = StructureType 1000109005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2"
-pattern STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = StructureType 1000109004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2"
-pattern STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = StructureType 1000109003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2"
-pattern STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = StructureType 1000109002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2"
-pattern STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = StructureType 1000109001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2"
-pattern STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = StructureType 1000109000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO"
-pattern STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = StructureType 1000147000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = StructureType 52
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = StructureType 51
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = StructureType 50
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = StructureType 49
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = StructureType 1000063000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT"
-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = StructureType 1000168001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = StructureType 1000168000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES"
-pattern STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = StructureType 1000076001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = StructureType 1000076000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO"
-pattern STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = StructureType 1000077000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO"
-pattern STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = StructureType 1000113000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES"
-pattern STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = StructureType 1000112001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = StructureType 1000112000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO"
-pattern STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = StructureType 1000072002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO"
-pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = StructureType 1000072001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO"
-pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = StructureType 1000072000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = StructureType 1000071004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES"
-pattern STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = StructureType 1000071003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = StructureType 1000071002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES"
-pattern STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = StructureType 1000071001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = StructureType 1000071000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO"
-pattern STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = StructureType 1000085000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"
-pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = StructureType 1000156005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = StructureType 1000156004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO"
-pattern STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = StructureType 1000156003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO"
-pattern STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = StructureType 1000156002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO"
-pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = StructureType 1000156001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO"
-pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = StructureType 1000156000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2"
-pattern STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = StructureType 1000145003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = StructureType 1000145002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = StructureType 1000145001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO"
-pattern STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = StructureType 1000145000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = StructureType 1000120000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = StructureType 1000053002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = StructureType 1000053001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO"
-pattern STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = StructureType 1000053000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"
-pattern STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = StructureType 1000117003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO"
-pattern STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = StructureType 1000117002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO"
-pattern STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = StructureType 1000117001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = StructureType 1000117000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = StructureType 1000059008
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2"
-pattern STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = StructureType 1000059007
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = StructureType 1000059006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2"
-pattern STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = StructureType 1000059005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = StructureType 1000059004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2"
-pattern STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = StructureType 1000059003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2"
-pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = StructureType 1000059002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = StructureType 1000059001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = StructureType 1000059000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"
-pattern STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = StructureType 1000146004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2"
-pattern STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = StructureType 1000146003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2"
-pattern STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = StructureType 1000146002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2"
-pattern STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = StructureType 1000146001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2"
-pattern STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = StructureType 1000146000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO"
-pattern STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = StructureType 1000070001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = StructureType 1000070000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO"
-pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = StructureType 1000060014
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO"
-pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = StructureType 1000060013
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO"
-pattern STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = StructureType 1000060006
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO"
-pattern STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = StructureType 1000060005
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO"
-pattern STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = StructureType 1000060004
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO"
-pattern STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = StructureType 1000060003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO"
-pattern STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = StructureType 1000060000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO"
-pattern STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = StructureType 1000127001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS"
-pattern STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = StructureType 1000127000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = StructureType 1000083000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO"
-pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = StructureType 1000157001
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO"
-pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = StructureType 1000157000
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = StructureType 1000094000
-
-{-# COMPLETE
-  STRUCTURE_TYPE_APPLICATION_INFO
-  , STRUCTURE_TYPE_INSTANCE_CREATE_INFO
-  , STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
-  , STRUCTURE_TYPE_DEVICE_CREATE_INFO
-  , STRUCTURE_TYPE_SUBMIT_INFO
-  , STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
-  , STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
-  , STRUCTURE_TYPE_BIND_SPARSE_INFO
-  , STRUCTURE_TYPE_FENCE_CREATE_INFO
-  , STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
-  , STRUCTURE_TYPE_EVENT_CREATE_INFO
-  , STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
-  , STRUCTURE_TYPE_BUFFER_CREATE_INFO
-  , STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
-  , STRUCTURE_TYPE_IMAGE_CREATE_INFO
-  , STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
-  , STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
-  , STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
-  , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
-  , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
-  , STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
-  , STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
-  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
-  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
-  , STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
-  , STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
-  , STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
-  , STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
-  , STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
-  , STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
-  , STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
-  , STRUCTURE_TYPE_SAMPLER_CREATE_INFO
-  , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
-  , STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
-  , STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
-  , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
-  , STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
-  , STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
-  , STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
-  , STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
-  , STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
-  , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
-  , STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
-  , STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
-  , STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
-  , STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
-  , 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_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT
-  , STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT
-  , STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR
-  , STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR
-  , STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR
-  , STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR
-  , STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR
-  , STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR
-  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR
-  , 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_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
-  , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR
-  , 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_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV
-  , 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_LAYER_SETTINGS_CREATE_INFO_EXT
-  , 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
-  , STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC
-  , STRUCTURE_TYPE_TILE_PROPERTIES_QCOM
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM
-  , STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
-  , STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT
-  , 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
-  , STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV
-  , STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV
-  , STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV
-  , STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
-  , STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT
-  , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT
-  , STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG
-  , STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG
-  , STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT
-  , 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_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR
-  , 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
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV
-  , STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM
-  , STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM
-  , STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM
-  , STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT
-  , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE
-  , STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE
-  , STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM
-  , STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
-  , STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT
-  , STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT
-  , STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT
-  , STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT
-  , STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT
-  , STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT
-  , STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT
-  , STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
-  , STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT
-  , STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
-  , STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
-  , 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
-  , STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI
-  , STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI
-  , STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA
-  , STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA
-  , STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA
-  , STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA
-  , STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA
-  , STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA
-  , STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA
-  , STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA
-  , STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA
-  , STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA
-  , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA
-  , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA
-  , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA
-  , STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA
-  , STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT
-  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT
-  , STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
-  , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT
-  , STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT
-  , STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT
-  , 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_COMPRESSION_CONTROL_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
-  , STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV
-  , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD
-  , STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-  , STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
-  , STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT
-  , STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-  , STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-  , STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-  , STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-  , STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT
-  , STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
-  , STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
-  , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
-  , STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT
-  , STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT
-  , STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT
-  , STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT
-  , STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT
-  , STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT
-  , STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT
-  , STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT
-  , STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT
-  , STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT
-  , STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT
-  , STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV
-  , STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV
-  , STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV
-  , STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
-  , STRUCTURE_TYPE_PRESENT_ID_KHR
-  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV
-  , STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV
-  , STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
-  , STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
-  , 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
-  , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV
-  , STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV
-  , STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV
-  , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV
-  , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV
-  , STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV
-  , STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV
-  , STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
-  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT
-  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT
-  , STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT
-  , STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT
-  , STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT
-  , 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
-  , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
-  , STRUCTURE_TYPE_PIPELINE_INFO_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
-  , STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
-  , STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
-  , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
-  , STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
-  , STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
-  , STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
-  , STRUCTURE_TYPE_VALIDATION_FEATURES_EXT
-  , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV
-  , STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
-  , STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
-  , STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR
-  , STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
-  , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
-  , STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
-  , STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA
-  , STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
-  , STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
-  , STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
-  , STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
-  , STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
-  , STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
-  , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL
-  , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
-  , STRUCTURE_TYPE_CHECKPOINT_DATA_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
-  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV
-  , STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
-  , STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
-  , STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR
-  , STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
-  , STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
-  , STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT
-  , STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT
-  , STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT
-  , STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
-  , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
-  , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
-  , STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV
-  , STRUCTURE_TYPE_GEOMETRY_AABB_NV
-  , STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
-  , STRUCTURE_TYPE_GEOMETRY_NV
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
-  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
-  , STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT
-  , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
-  , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
-  , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV
-  , STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
-  , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
-  , STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
-  , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
-  , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
-  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
-  , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
-  , STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
-  , STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
-  , 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
-  , STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
-  , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
-  , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
-  , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
-  , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
-  , STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
-  , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT
-  , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT
-  , STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK
-  , STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK
-  , STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR
-  , STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR
-  , STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR
-  , STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR
-  , STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR
-  , STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR
-  , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR
-  , STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR
-  , STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR
-  , STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR
-  , STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR
-  , STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR
-  , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
-  , STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
-  , STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR
-  , STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
-  , STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
-  , STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
-  , STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG
-  , STRUCTURE_TYPE_HDR_METADATA_EXT
-  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
-  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX
-  , STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
-  , STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT
-  , STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT
-  , STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT
-  , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
-  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PRESENT_REGIONS_KHR
-  , STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
-  , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
-  , STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR
-  , STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR
-  , STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR
-  , STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
-  , STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
-  , STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
-  , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR
-  , STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR
-  , STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR
-  , STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR
-  , STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR
-  , STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR
-  , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR
-  , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT
-  , STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
-  , STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT
-  , STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN
-  , STRUCTURE_TYPE_VALIDATION_FLAGS_EXT
-  , STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
-  , STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
-  , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
-  , STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
-  , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV
-  , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV
-  , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV
-  , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV
-  , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV
-  , STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP
-  , STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX
-  , STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
-  , STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT
-  , STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
-  , STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD
-  , STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX
-  , STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX
-  , STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX
-  , STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX
-  , STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX
-  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
-  , STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV
-  , STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV
-  , STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV
-  , STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT
-  , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT
-  , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT
-  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD
-  , STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
-  , STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR
-  , STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_PRESENT_INFO_KHR
-  , STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR
-  , STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO
-  , STRUCTURE_TYPE_FAULT_CALLBACK_INFO
-  , STRUCTURE_TYPE_FAULT_DATA
-  , STRUCTURE_TYPE_PIPELINE_POOL_SIZE
-  , STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION
-  , STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO
-  , STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES
-  , STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS
-  , STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES
-  , STRUCTURE_TYPE_FORMAT_PROPERTIES_3
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES
-  , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES
-  , STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO
-  , STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO
-  , STRUCTURE_TYPE_RENDERING_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES
-  , STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO
-  , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES
-  , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES
-  , STRUCTURE_TYPE_IMAGE_RESOLVE_2
-  , STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2
-  , STRUCTURE_TYPE_IMAGE_BLIT_2
-  , STRUCTURE_TYPE_IMAGE_COPY_2
-  , STRUCTURE_TYPE_BUFFER_COPY_2
-  , STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2
-  , STRUCTURE_TYPE_BLIT_IMAGE_INFO_2
-  , STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2
-  , STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2
-  , STRUCTURE_TYPE_COPY_IMAGE_INFO_2
-  , STRUCTURE_TYPE_COPY_BUFFER_INFO_2
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES
-  , STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO
-  , STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO
-  , STRUCTURE_TYPE_SUBMIT_INFO_2
-  , STRUCTURE_TYPE_DEPENDENCY_INFO
-  , STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2
-  , STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2
-  , STRUCTURE_TYPE_MEMORY_BARRIER_2
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES
-  , STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO
-  , STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES
-  , STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES
-  , STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO
-  , STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO
-  , STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO
-  , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
-  , STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO
-  , STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO
-  , STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO
-  , STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
-  , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT
-  , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
-  , STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO
-  , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO
-  , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
-  , STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
-  , STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
-  , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
-  , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
-  , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
-  , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
-  , STRUCTURE_TYPE_SUBPASS_END_INFO
-  , STRUCTURE_TYPE_SUBPASS_BEGIN_INFO
-  , STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2
-  , STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2
-  , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2
-  , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2
-  , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2
-  , STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
-  , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
-  , STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
-  , STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO
-  , STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO
-  , STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO
-  , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO
-  , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO
-  , STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
-  , STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO
-  , STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
-  , STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
-  , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
-  , STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO
-  , STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO
-  , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO
-  , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO
-  , STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
-  , STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
-  , STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO
-  , STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
-  , STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO
-  , STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
-  , STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2
-  , STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2
-  , STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2
-  , STRUCTURE_TYPE_FORMAT_PROPERTIES_2
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2
-  , STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2
-  , STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2
-  , STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2
-  , STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2
-  , STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2
-  , STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES
-  , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
-  , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
-  , STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO
-  , STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO
-  , STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO
-  , STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO
-  , STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO
-  , STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
-  , STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
-  , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
-  , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES ::
-    StructureType
-  #-}
-
-conNameStructureType :: String
-conNameStructureType = "StructureType"
-
-enumPrefixStructureType :: String
-enumPrefixStructureType = "STRUCTURE_TYPE_"
-
-showTableStructureType :: [(StructureType, String)]
-showTableStructureType =
-  [ (STRUCTURE_TYPE_APPLICATION_INFO, "APPLICATION_INFO")
-  ,
-    ( STRUCTURE_TYPE_INSTANCE_CREATE_INFO
-    , "INSTANCE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
-    , "DEVICE_QUEUE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_CREATE_INFO
-    , "DEVICE_CREATE_INFO"
-    )
-  , (STRUCTURE_TYPE_SUBMIT_INFO, "SUBMIT_INFO")
-  ,
-    ( STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
-    , "MEMORY_ALLOCATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
-    , "MAPPED_MEMORY_RANGE"
-    )
-  , (STRUCTURE_TYPE_BIND_SPARSE_INFO, "BIND_SPARSE_INFO")
-  ,
-    ( STRUCTURE_TYPE_FENCE_CREATE_INFO
-    , "FENCE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
-    , "SEMAPHORE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_EVENT_CREATE_INFO
-    , "EVENT_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
-    , "QUERY_POOL_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_BUFFER_CREATE_INFO
-    , "BUFFER_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
-    , "BUFFER_VIEW_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_CREATE_INFO
-    , "IMAGE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
-    , "IMAGE_VIEW_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
-    , "SHADER_MODULE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
-    , "PIPELINE_CACHE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
-    , "PIPELINE_SHADER_STAGE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
-    , "PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
-    , "PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
-    , "PIPELINE_TESSELLATION_STATE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
-    , "PIPELINE_VIEWPORT_STATE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
-    , "PIPELINE_RASTERIZATION_STATE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
-    , "PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
-    , "PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
-    , "PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
-    , "PIPELINE_DYNAMIC_STATE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
-    , "GRAPHICS_PIPELINE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
-    , "COMPUTE_PIPELINE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
-    , "PIPELINE_LAYOUT_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_SAMPLER_CREATE_INFO
-    , "SAMPLER_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
-    , "DESCRIPTOR_SET_LAYOUT_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
-    , "DESCRIPTOR_POOL_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
-    , "DESCRIPTOR_SET_ALLOCATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
-    , "WRITE_DESCRIPTOR_SET"
-    )
-  ,
-    ( STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
-    , "COPY_DESCRIPTOR_SET"
-    )
-  ,
-    ( STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
-    , "FRAMEBUFFER_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
-    , "RENDER_PASS_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
-    , "COMMAND_POOL_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
-    , "COMMAND_BUFFER_ALLOCATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
-    , "COMMAND_BUFFER_INHERITANCE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
-    , "COMMAND_BUFFER_BEGIN_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
-    , "RENDER_PASS_BEGIN_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
-    , "BUFFER_MEMORY_BARRIER"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
-    , "IMAGE_MEMORY_BARRIER"
-    )
-  , (STRUCTURE_TYPE_MEMORY_BARRIER, "MEMORY_BARRIER")
-  ,
-    ( STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
-    , "LOADER_INSTANCE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
-    , "LOADER_DEVICE_CREATE_INFO"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
-    , "PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT
-    , "BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT
-    , "SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR
-    , "PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR
-    , "PUSH_DESCRIPTOR_SET_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR
-    , "PUSH_CONSTANTS_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR
-    , "BIND_DESCRIPTOR_SETS_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR
-    , "BIND_MEMORY_STATUS_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR
-    , "PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR
-    , "PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR
-    , "PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
-    , "CALIBRATED_TIMESTAMP_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR
-    , "PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR
-    , "PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR
-    , "PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR
-    , "PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR"
-    )
-  ,
-    ( 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_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR
-    , "PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
-    , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR
-    , "PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR
-    , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR"
-    )
-  ,
-    ( 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_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV
-    , "PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM
-    , "MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM
-    , "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"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM
-    , "PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
-    , "PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM"
-    )
-  ,
-    ( STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT
-    , "LAYER_SETTINGS_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT
-    , "MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT
-    , "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"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV
-    , "PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM
-    , "PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM"
-    )
-  ,
-    ( STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC
-    , "AMIGO_PROFILING_SUBMIT_INFO_SEC"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC
-    , "PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC"
-    )
-  ,
-    ( STRUCTURE_TYPE_TILE_PROPERTIES_QCOM
-    , "TILE_PROPERTIES_QCOM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM
-    , "PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM"
-    )
-  ,
-    ( STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
-    , "VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT
-    , "VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT
-    , "SHADER_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT
-    , "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"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT
-    , "PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV
-    , "OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV
-    , "OPTICAL_FLOW_EXECUTE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV
-    , "OPTICAL_FLOW_SESSION_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV
-    , "OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV
-    , "OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV
-    , "PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV
-    , "PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
-    , "PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT
-    , "SHADER_MODULE_IDENTIFIER_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT
-    , "PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT
-    , "PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG
-    , "DIRECT_DRIVER_LOADING_LIST_LUNARG"
-    )
-  ,
-    ( STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG
-    , "DIRECT_DRIVER_LOADING_INFO_LUNARG"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT
-    , "RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT
-    , "RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT
-    , "RENDER_PASS_CREATION_CONTROL_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT
-    , "PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT
-    , "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"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM
-    , "PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM
-    , "PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT
-    , "PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR
-    , "PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV
-    , "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"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV
-    , "PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV
-    , "PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV
-    , "PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM
-    , "SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM
-    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM
-    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM
-    , "RENDER_PASS_STRIPE_SUBMIT_INFO_ARM"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM
-    , "RENDER_PASS_STRIPE_INFO_ARM"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM
-    , "RENDER_PASS_STRIPE_BEGIN_INFO_ARM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM
-    , "PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM
-    , "PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
-    , "PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT
-    , "PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE
-    , "DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE"
-    )
-  ,
-    ( STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE
-    , "DESCRIPTOR_SET_BINDING_REFERENCE_VALVE"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE
-    , "PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT
-    , "IMAGE_VIEW_SLICED_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT
-    , "PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM
-    , "PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM
-    , "PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM
-    , "DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR
-    , "PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM
-    , "PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
-    , "PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT
-    , "SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
-    , "PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI
-    , "PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
-    , "PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
-    , "PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV
-    , "ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV
-    , "PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV
-    , "PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT
-    , "ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT
-    , "MICROMAP_BUILD_SIZES_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT
-    , "MICROMAP_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT
-    , "PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT
-    , "COPY_MEMORY_TO_MICROMAP_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT
-    , "COPY_MICROMAP_TO_MEMORY_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT
-    , "COPY_MICROMAP_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT
-    , "MICROMAP_VERSION_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT
-    , "MICROMAP_BUILD_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT
-    , "PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT
-    , "PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
-    , "PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT
-    , "IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT
-    , "PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
-    , "PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT
-    , "PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT
-    , "PIPELINE_COLOR_WRITE_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
-    , "PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX
-    , "SCREEN_SURFACE_CREATE_INFO_QNX"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
-    , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT
-    , "MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
-    , "SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT
-    , "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"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT
-    , "PIPELINE_PROPERTIES_IDENTIFIER_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV
-    , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV
-    , "MEMORY_GET_REMOTE_ADDRESS_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI
-    , "PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI
-    , "PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI
-    , "PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI"
-    )
-  ,
-    ( STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI
-    , "SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"
-    )
-  ,
-    ( STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA
-    , "BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA
-    , "SYSMEM_COLOR_SPACE_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA
-    , "IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA
-    , "IMAGE_CONSTRAINTS_INFO_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA
-    , "BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA
-    , "BUFFER_CONSTRAINTS_INFO_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA
-    , "BUFFER_COLLECTION_PROPERTIES_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA
-    , "BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA
-    , "IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA
-    , "BUFFER_COLLECTION_CREATE_INFO_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA
-    , "SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA
-    , "IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA
-    , "MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA
-    , "MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA
-    , "IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT
-    , "PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT
-    , "PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT
-    , "PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT
-    , "DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT
-    , "PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_DRM_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
-    , "PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT
-    , "DIRECTFB_SURFACE_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT
-    , "PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT
-    , "DEVICE_FAULT_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT
-    , "DEVICE_FAULT_COUNTS_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT
-    , "PHYSICAL_DEVICE_FAULT_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
-    , "PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT
-    , "PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT
-    , "IMAGE_COMPRESSION_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT
-    , "IMAGE_COMPRESSION_CONTROL_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
-    , "PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
-    , "PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM
-    , "COPY_COMMAND_TRANSFORM_INFO_QCOM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
-    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
-    , "PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT
-    , "PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV
-    , "ACCELERATION_STRUCTURE_MOTION_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV
-    , "PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV
-    , "ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV
-    , "PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV
-    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV
-    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
-    , "PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
-    , "PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR
-    , "PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD
-    , "PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD"
-    )
-  ,
-    ( STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT
-    , "GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT
-    , "PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-    , "ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
-    , "DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT
-    , "DESCRIPTOR_BUFFER_BINDING_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT
-    , "OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-    , "SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-    , "IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-    , "IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
-    , "BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT
-    , "DESCRIPTOR_GET_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT
-    , "DESCRIPTOR_ADDRESS_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
-    , "PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
-    , "CHECKPOINT_DATA_2_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
-    , "QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT
-    , "IMPORT_METAL_SHARED_EVENT_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT
-    , "EXPORT_METAL_SHARED_EVENT_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT
-    , "IMPORT_METAL_IO_SURFACE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT
-    , "EXPORT_METAL_IO_SURFACE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT
-    , "IMPORT_METAL_TEXTURE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT
-    , "EXPORT_METAL_TEXTURE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT
-    , "IMPORT_METAL_BUFFER_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT
-    , "EXPORT_METAL_BUFFER_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT
-    , "EXPORT_METAL_COMMAND_QUEUE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT
-    , "EXPORT_METAL_DEVICE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT
-    , "EXPORT_METAL_OBJECTS_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT
-    , "EXPORT_METAL_OBJECT_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV
-    , "QUERY_LOW_LATENCY_SUPPORT_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV
-    , "PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV
-    , "PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV
-    , "CUDA_LAUNCH_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV
-    , "CUDA_FUNCTION_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV
-    , "CUDA_MODULE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV
-    , "DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV
-    , "PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
-    , "PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR"
-    )
-  , (STRUCTURE_TYPE_PRESENT_ID_KHR, "PRESENT_ID_KHR")
-  ,
-    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV
-    , "SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV
-    , "SURFACE_CAPABILITIES_PRESENT_BARRIER_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV
-    , "PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR
-    , "PIPELINE_LIBRARY_CREATE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
-    , "PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT
-    , "SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
-    , "PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT
-    , "DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT
-    , "DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT
-    , "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"
-    )
-  ,
-    ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM
-    , "COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
-    , "PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV
-    , "COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV
-    , "PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV
-    , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV
-    , "GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV
-    , "GENERATED_COMMANDS_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV
-    , "INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV
-    , "INDIRECT_COMMANDS_LAYOUT_TOKEN_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV
-    , "GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV
-    , "GRAPHICS_SHADER_GROUP_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV
-    , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
-    , "RELEASE_SWAPCHAIN_IMAGES_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT
-    , "SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT
-    , "SWAPCHAIN_PRESENT_MODE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT
-    , "SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT
-    , "SWAPCHAIN_PRESENT_FENCE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT
-    , "PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT
-    , "SURFACE_PRESENT_MODE_COMPATIBILITY_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT
-    , "SURFACE_PRESENT_SCALING_CAPABILITIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT
-    , "SURFACE_PRESENT_MODE_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
-    , "PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR
-    , "MEMORY_UNMAP_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR
-    , "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"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR
-    , "PIPELINE_EXECUTABLE_STATISTIC_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR
-    , "PIPELINE_EXECUTABLE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
-    , "PIPELINE_EXECUTABLE_PROPERTIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_INFO_KHR
-    , "PIPELINE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
-    , "PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
-    , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
-    , "PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT
-    , "HEADLESS_SURFACE_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
-    , "SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
-    , "SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
-    , "SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT
-    , "PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
-    , "PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
-    , "PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
-    , "PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
-    , "FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
-    , "PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
-    , "PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
-    , "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
-    , "COOPERATIVE_MATRIX_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
-    , "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
-    , "PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_VALIDATION_FEATURES_EXT
-    , "VALIDATION_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT
-    , "BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
-    , "PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV
-    , "PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
-    , "SURFACE_PROTECTED_CAPABILITIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT
-    , "MEMORY_PRIORITY_ALLOCATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
-    , "PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR
-    , "PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
-    , "PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR
-    , "RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR
-    , "RENDERING_ATTACHMENT_LOCATION_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR
-    , "PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD
-    , "PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
-    , "PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR
-    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
-    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
-    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR
-    , "PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
-    , "FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT
-    , "RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
-    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT
-    , "METAL_SURFACE_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA
-    , "IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA"
-    )
-  ,
-    ( STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
-    , "SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD"
-    )
-  ,
-    ( STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
-    , "DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
-    , "PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL"
-    )
-  ,
-    ( STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
-    , "PERFORMANCE_OVERRIDE_INFO_INTEL"
-    )
-  ,
-    ( STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
-    , "PERFORMANCE_STREAM_MARKER_INFO_INTEL"
-    )
-  ,
-    ( STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
-    , "PERFORMANCE_MARKER_INFO_INTEL"
-    )
-  ,
-    ( STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
-    , "INITIALIZE_PERFORMANCE_API_INFO_INTEL"
-    )
-  ,
-    ( STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
-    , "QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL
-    , "PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL"
-    )
-  ,
-    ( STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
-    , "QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_CHECKPOINT_DATA_NV
-    , "CHECKPOINT_DATA_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
-    , "PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV
-    , "PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV
-    , "PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV
-    , "PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
-    , "PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV
-    , "PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
-    , "PRESENT_FRAME_TOKEN_GGP"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
-    , "DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD"
-    )
-  ,
-    ( STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
-    , "QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR
-    , "PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR
-    , "DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
-    , "PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
-    , "PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
-    , "PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT
-    , "MEMORY_HOST_POINTER_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT
-    , "IMPORT_MEMORY_HOST_POINTER_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT
-    , "FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT
-    , "PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV
-    , "PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV
-    , "PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
-    , "ACCELERATION_STRUCTURE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
-    , "RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
-    , "PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
-    , "ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
-    , "WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV
-    , "BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV"
-    )
-  , (STRUCTURE_TYPE_GEOMETRY_AABB_NV, "GEOMETRY_AABB_NV")
-  ,
-    ( STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
-    , "GEOMETRY_TRIANGLES_NV"
-    )
-  , (STRUCTURE_TYPE_GEOMETRY_NV, "GEOMETRY_NV")
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
-    , "ACCELERATION_STRUCTURE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
-    , "RAY_TRACING_PIPELINE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
-    , "PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
-    , "PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
-    , "PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
-    , "PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
-    , "PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
-    , "PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
-    , "SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
-    , "VALIDATION_CACHE_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT
-    , "DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
-    , "IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
-    , "IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
-    , "IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
-    , "PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT
-    , "DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV
-    , "PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV
-    , "PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
-    , "PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
-    , "PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
-    , "RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR
-    , "RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR
-    , "RAY_TRACING_PIPELINE_CREATE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
-    , "PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
-    , "PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
-    , "ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR
-    , "ACCELERATION_STRUCTURE_CREATE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
-    , "PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
-    , "PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
-    , "COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
-    , "COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR
-    , "COPY_ACCELERATION_STRUCTURE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR
-    , "ACCELERATION_STRUCTURE_VERSION_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR
-    , "ACCELERATION_STRUCTURE_GEOMETRY_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
-    , "ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
-    , "ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
-    , "ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
-    , "ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
-    , "ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
-    , "WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV
-    , "PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
-    , "PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
-    , "PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT
-    , "MULTISAMPLE_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT
-    , "PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT
-    , "RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT"
-    )
-  ,
-    ( 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
-    , "ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID
-    , "EXTERNAL_FORMAT_ANDROID"
-    )
-  ,
-    ( STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
-    , "MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
-    , "IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"
-    )
-  ,
-    ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
-    , "ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"
-    )
-  ,
-    ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
-    , "ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"
-    )
-  ,
-    ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
-    , "ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT
-    , "DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
-    , "DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
-    , "DEBUG_UTILS_LABEL_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT
-    , "DEBUG_UTILS_OBJECT_TAG_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT
-    , "DEBUG_UTILS_OBJECT_NAME_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK
-    , "MACOS_SURFACE_CREATE_INFO_MVK"
-    )
-  ,
-    ( STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK
-    , "IOS_SURFACE_CREATE_INFO_MVK"
-    )
-  ,
-    ( STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR
-    , "DISPLAY_PLANE_CAPABILITIES_2_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR
-    , "DISPLAY_PLANE_INFO_2_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR
-    , "DISPLAY_MODE_PROPERTIES_2_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR
-    , "DISPLAY_PLANE_PROPERTIES_2_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR
-    , "DISPLAY_PROPERTIES_2_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR
-    , "SURFACE_FORMAT_2_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
-    , "SURFACE_CAPABILITIES_2_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR
-    , "PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR
-    , "PERFORMANCE_QUERY_RESERVATION_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR
-    , "PERFORMANCE_COUNTER_DESCRIPTION_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR
-    , "PERFORMANCE_COUNTER_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR
-    , "ACQUIRE_PROFILING_LOCK_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR
-    , "PERFORMANCE_QUERY_SUBMIT_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR
-    , "QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
-    , "PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
-    , "PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
-    , "FENCE_GET_FD_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR
-    , "IMPORT_FENCE_FD_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
-    , "FENCE_GET_WIN32_HANDLE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
-    , "EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
-    , "IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
-    , "SHARED_PRESENT_SURFACE_CAPABILITIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG
-    , "PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG"
-    )
-  , (STRUCTURE_TYPE_HDR_METADATA_EXT, "HDR_METADATA_EXT")
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT
-    , "PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
-    , "PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
-    , "PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT
-    , "PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV
-    , "PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX
-    , "PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"
-    )
-  ,
-    ( STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
-    , "PRESENT_TIMES_INFO_GOOGLE"
-    )
-  ,
-    ( STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT
-    , "SWAPCHAIN_COUNTER_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT
-    , "DISPLAY_EVENT_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT
-    , "DEVICE_EVENT_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT
-    , "DISPLAY_POWER_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
-    , "SURFACE_CAPABILITIES_2_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
-    , "PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PRESENT_REGIONS_KHR
-    , "PRESENT_REGIONS_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
-    , "CONDITIONAL_RENDERING_BEGIN_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
-    , "PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
-    , "COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
-    , "PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR
-    , "SEMAPHORE_GET_FD_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR
-    , "IMPORT_SEMAPHORE_FD_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR
-    , "SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
-    , "D3D12_FENCE_SUBMIT_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
-    , "EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
-    , "IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR
-    , "WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR
-    , "MEMORY_GET_FD_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR
-    , "MEMORY_FD_PROPERTIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR
-    , "IMPORT_MEMORY_FD_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR
-    , "MEMORY_GET_WIN32_HANDLE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR
-    , "MEMORY_WIN32_HANDLE_PROPERTIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR
-    , "EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR
-    , "IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT
-    , "PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT
-    , "PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT
-    , "PIPELINE_ROBUSTNESS_CREATE_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
-    , "PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT
-    , "IMAGE_VIEW_ASTC_DECODE_MODE_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN
-    , "VI_SURFACE_CREATE_INFO_NN"
-    )
-  ,
-    ( STRUCTURE_TYPE_VALIDATION_FLAGS_EXT
-    , "VALIDATION_FLAGS_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
-    , "DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
-    , "DEVICE_GROUP_PRESENT_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
-    , "ACQUIRE_NEXT_IMAGE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
-    , "BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
-    , "IMAGE_SWAPCHAIN_CREATE_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
-    , "DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV
-    , "WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV
-    , "EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV
-    , "IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV
-    , "EXPORT_MEMORY_ALLOCATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV
-    , "EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV
-    , "PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"
-    )
-  ,
-    ( STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP
-    , "STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP"
-    )
-  ,
-    ( STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX
-    , "MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX"
-    )
-  ,
-    ( STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
-    , "ATTACHMENT_SAMPLE_COUNT_INFO_AMD"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT
-    , "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
-    , "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"
-    )
-  ,
-    ( STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD
-    , "TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX
-    , "IMAGE_VIEW_ADDRESS_PROPERTIES_NVX"
-    )
-  ,
-    ( STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX
-    , "IMAGE_VIEW_HANDLE_INFO_NVX"
+module Vulkan.Core10.Enums.StructureType  ( pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR
+                                          , pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR
+                                          , StructureType( STRUCTURE_TYPE_APPLICATION_INFO
+                                                         , STRUCTURE_TYPE_INSTANCE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_DEVICE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_SUBMIT_INFO
+                                                         , STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
+                                                         , STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
+                                                         , STRUCTURE_TYPE_BIND_SPARSE_INFO
+                                                         , STRUCTURE_TYPE_FENCE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_EVENT_CREATE_INFO
+                                                         , STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
+                                                         , STRUCTURE_TYPE_BUFFER_CREATE_INFO
+                                                         , STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
+                                                         , STRUCTURE_TYPE_IMAGE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
+                                                         , STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
+                                                         , STRUCTURE_TYPE_SAMPLER_CREATE_INFO
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
+                                                         , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
+                                                         , STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
+                                                         , STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
+                                                         , STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
+                                                         , STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
+                                                         , STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
+                                                         , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
+                                                         , STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
+                                                         , STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
+                                                         , STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
+                                                         , STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
+                                                         , STRUCTURE_TYPE_MEMORY_BARRIER
+                                                         , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV
+                                                         , STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI
+                                                         , STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA
+                                                         , STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT
+                                                         , STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT
+                                                         , STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT
+                                                         , STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT
+                                                         , STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT
+                                                         , STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT
+                                                         , STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT
+                                                         , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT
+                                                         , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT
+                                                         , STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV
+                                                         , STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
+                                                         , STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT
+                                                         , STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT
+                                                         , STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR
+                                                         , STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR
+                                                         , STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR
+                                                         , STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR
+                                                         , 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_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR
+                                                         , 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_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR
+                                                         , 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_LAYER_SETTINGS_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT
+                                                         , 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
+                                                         , STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC
+                                                         , STRUCTURE_TYPE_TILE_PROPERTIES_QCOM
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM
+                                                         , STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
+                                                         , STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR
+                                                         , STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR
+                                                         , STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR
+                                                         , STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR
+                                                         , STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
+                                                         , STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT
+                                                         , 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_ANTI_LAG_PRESENTATION_INFO_AMD
+                                                         , STRUCTURE_TYPE_ANTI_LAG_DATA_AMD
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD
+                                                         , 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
+                                                         , STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV
+                                                         , STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT
+                                                         , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG
+                                                         , STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG
+                                                         , STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT
+                                                         , 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_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR
+                                                         , 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
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV
+                                                         , STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM
+                                                         , STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM
+                                                         , STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM
+                                                         , STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE
+                                                         , STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM
+                                                         , STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT
+                                                         , STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT
+                                                         , STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT
+                                                         , STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT
+                                                         , STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT
+                                                         , STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT
+                                                         , STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
+                                                         , 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
+                                                         , STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI
+                                                         , STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI
+                                                         , STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA
+                                                         , STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA
+                                                         , STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA
+                                                         , STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA
+                                                         , STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA
+                                                         , STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA
+                                                         , STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA
+                                                         , STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA
+                                                         , STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA
+                                                         , STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA
+                                                         , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA
+                                                         , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA
+                                                         , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA
+                                                         , STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA
+                                                         , STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT
+                                                         , STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT
+                                                         , 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_COMPRESSION_CONTROL_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV
+                                                         , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD
+                                                         , STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT
+                                                         , STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+                                                         , STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+                                                         , STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+                                                         , STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT
+                                                         , STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT
+                                                         , STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT
+                                                         , STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT
+                                                         , STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT
+                                                         , STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT
+                                                         , STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT
+                                                         , STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT
+                                                         , STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT
+                                                         , STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT
+                                                         , STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT
+                                                         , STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV
+                                                         , STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV
+                                                         , STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PRESENT_ID_KHR
+                                                         , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
+                                                         , 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
+                                                         , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV
+                                                         , STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV
+                                                         , STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV
+                                                         , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV
+                                                         , STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
+                                                         , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT
+                                                         , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT
+                                                         , STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT
+                                                         , STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_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
+                                                         , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PIPELINE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
+                                                         , STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
+                                                         , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
+                                                         , STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_VALIDATION_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV
+                                                         , STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
+                                                         , STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR
+                                                         , STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
+                                                         , STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
+                                                         , STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT
+                                                         , STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA
+                                                         , STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
+                                                         , STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
+                                                         , STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
+                                                         , STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
+                                                         , STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
+                                                         , STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
+                                                         , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL
+                                                         , STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
+                                                         , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
+                                                         , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_CHECKPOINT_DATA_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
+                                                         , STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
+                                                         , STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT
+                                                         , STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT
+                                                         , STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
+                                                         , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
+                                                         , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
+                                                         , STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV
+                                                         , STRUCTURE_TYPE_GEOMETRY_AABB_NV
+                                                         , STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
+                                                         , STRUCTURE_TYPE_GEOMETRY_NV
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT
+                                                         , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
+                                                         , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV
+                                                         , STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
+                                                         , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
+                                                         , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
+                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
+                                                         , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
+                                                         , STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
+                                                         , 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_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
+                                                         , 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
+                                                         , STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
+                                                         , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
+                                                         , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
+                                                         , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
+                                                         , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
+                                                         , STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
+                                                         , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT
+                                                         , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT
+                                                         , STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK
+                                                         , STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK
+                                                         , STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR
+                                                         , STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR
+                                                         , STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR
+                                                         , STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR
+                                                         , STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR
+                                                         , STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR
+                                                         , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR
+                                                         , STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR
+                                                         , STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR
+                                                         , STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR
+                                                         , STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR
+                                                         , STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR
+                                                         , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
+                                                         , STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
+                                                         , STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR
+                                                         , STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
+                                                         , STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
+                                                         , STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
+                                                         , STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG
+                                                         , STRUCTURE_TYPE_HDR_METADATA_EXT
+                                                         , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX
+                                                         , STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
+                                                         , STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT
+                                                         , STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT
+                                                         , STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT
+                                                         , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
+                                                         , STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PRESENT_REGIONS_KHR
+                                                         , STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR
+                                                         , STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR
+                                                         , STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR
+                                                         , STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
+                                                         , STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
+                                                         , STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
+                                                         , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR
+                                                         , STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR
+                                                         , STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR
+                                                         , STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR
+                                                         , STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR
+                                                         , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR
+                                                         , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT
+                                                         , STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN
+                                                         , STRUCTURE_TYPE_VALIDATION_FLAGS_EXT
+                                                         , STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
+                                                         , STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
+                                                         , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
+                                                         , STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
+                                                         , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV
+                                                         , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV
+                                                         , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV
+                                                         , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV
+                                                         , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV
+                                                         , STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP
+                                                         , STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD
+                                                         , STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX
+                                                         , STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX
+                                                         , STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX
+                                                         , STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX
+                                                         , STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX
+                                                         , STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX
+                                                         , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
+                                                         , STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV
+                                                         , STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV
+                                                         , STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT
+                                                         , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT
+                                                         , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT
+                                                         , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD
+                                                         , STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
+                                                         , STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR
+                                                         , STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PRESENT_INFO_KHR
+                                                         , STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR
+                                                         , STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_FAULT_CALLBACK_INFO
+                                                         , STRUCTURE_TYPE_FAULT_DATA
+                                                         , STRUCTURE_TYPE_PIPELINE_POOL_SIZE
+                                                         , STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION
+                                                         , STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO
+                                                         , STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES
+                                                         , STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS
+                                                         , STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES
+                                                         , STRUCTURE_TYPE_FORMAT_PROPERTIES_3
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES
+                                                         , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES
+                                                         , STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO
+                                                         , STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO
+                                                         , STRUCTURE_TYPE_RENDERING_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO
+                                                         , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES
+                                                         , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES
+                                                         , STRUCTURE_TYPE_IMAGE_RESOLVE_2
+                                                         , STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2
+                                                         , STRUCTURE_TYPE_IMAGE_BLIT_2
+                                                         , STRUCTURE_TYPE_IMAGE_COPY_2
+                                                         , STRUCTURE_TYPE_BUFFER_COPY_2
+                                                         , STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2
+                                                         , STRUCTURE_TYPE_BLIT_IMAGE_INFO_2
+                                                         , STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2
+                                                         , STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2
+                                                         , STRUCTURE_TYPE_COPY_IMAGE_INFO_2
+                                                         , STRUCTURE_TYPE_COPY_BUFFER_INFO_2
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES
+                                                         , STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO
+                                                         , STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO
+                                                         , STRUCTURE_TYPE_SUBMIT_INFO_2
+                                                         , STRUCTURE_TYPE_DEPENDENCY_INFO
+                                                         , STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2
+                                                         , STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2
+                                                         , STRUCTURE_TYPE_MEMORY_BARRIER_2
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES
+                                                         , STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO
+                                                         , STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES
+                                                         , STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES
+                                                         , STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO
+                                                         , STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO
+                                                         , STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO
+                                                         , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
+                                                         , STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO
+                                                         , STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO
+                                                         , STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO
+                                                         , STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
+                                                         , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT
+                                                         , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
+                                                         , STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO
+                                                         , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO
+                                                         , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
+                                                         , STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
+                                                         , STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
+                                                         , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
+                                                         , STRUCTURE_TYPE_SUBPASS_END_INFO
+                                                         , STRUCTURE_TYPE_SUBPASS_BEGIN_INFO
+                                                         , STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2
+                                                         , STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2
+                                                         , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2
+                                                         , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2
+                                                         , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2
+                                                         , STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
+                                                         , STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
+                                                         , STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO
+                                                         , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO
+                                                         , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
+                                                         , STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO
+                                                         , STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
+                                                         , STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
+                                                         , STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO
+                                                         , STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO
+                                                         , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO
+                                                         , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO
+                                                         , STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
+                                                         , STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
+                                                         , STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
+                                                         , STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2
+                                                         , STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2
+                                                         , STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2
+                                                         , STRUCTURE_TYPE_FORMAT_PROPERTIES_2
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2
+                                                         , STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2
+                                                         , STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2
+                                                         , STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2
+                                                         , STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2
+                                                         , STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2
+                                                         , STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES
+                                                         , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
+                                                         , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
+                                                         , STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO
+                                                         , STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO
+                                                         , STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO
+                                                         , STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO
+                                                         , STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO
+                                                         , STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
+                                                         , STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
+                                                         , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
+                                                         , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO
+                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
+                                                         , ..
+                                                         )
+                                          ) where
+
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
+import Foreign.Storable (Storable)
+import Data.Int (Int32)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+
+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR"
+pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
+
+
+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR"
+pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
+
+
+-- | VkStructureType - Vulkan structure types (@sType@)
+--
+-- = 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_KHR_acceleration_structure.AccelerationStructureBuildGeometryInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureBuildSizesInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.AccelerationStructureCaptureDescriptorDataInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV',
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureDeviceAddressInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryAabbsDataKHR',
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryInstancesDataKHR',
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryKHR',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureGeometryMotionTrianglesDataNV',
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureInfoNV',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureMemoryRequirementsInfoNV',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInfoNV',
+-- 'Vulkan.Extensions.VK_NV_displacement_micromap.AccelerationStructureTrianglesDisplacementMicromapNV',
+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.AccelerationStructureTrianglesOpacityMicromapEXT',
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureVersionInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_swapchain.AcquireNextImageInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_performance_query.AcquireProfilingLockInfoKHR',
+-- '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',
+-- 'Vulkan.Extensions.VK_AMD_anti_lag.AntiLagDataAMD',
+-- 'Vulkan.Extensions.VK_AMD_anti_lag.AntiLagPresentationInfoAMD',
+-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout',
+-- 'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD',
+-- 'Vulkan.CStruct.Extends.BaseInStructure',
+-- 'Vulkan.CStruct.Extends.BaseOutStructure',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing.BindAccelerationStructureMemoryInfoNV',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.BindBufferMemoryDeviceGroupInfo',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo',
+-- 'Vulkan.Extensions.VK_KHR_maintenance6.BindDescriptorBufferEmbeddedSamplersInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_maintenance6.BindDescriptorSetsInfoKHR',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.BindImageMemoryDeviceGroupInfo',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo',
+-- 'Vulkan.Extensions.VK_KHR_swapchain.BindImageMemorySwapchainInfoKHR',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.BindImagePlaneMemoryInfo',
+-- 'Vulkan.Extensions.VK_KHR_maintenance6.BindMemoryStatusKHR',
+-- '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',
+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionConstraintsInfoFUCHSIA',
+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionCreateInfoFUCHSIA',
+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA',
+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionPropertiesFUCHSIA',
+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferConstraintsInfoFUCHSIA',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferCopy2',
+-- 'Vulkan.Core10.Buffer.BufferCreateInfo',
+-- 'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferDeviceAddressInfo',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2',
+-- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',
+-- '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_KHR_calibrated_timestamps.CalibratedTimestampInfoKHR',
+-- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.CheckpointData2NV',
+-- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.CheckpointDataNV',
+-- 'Vulkan.Core10.CommandBuffer.CommandBufferAllocateInfo',
+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo',
+-- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT',
+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',
+-- '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.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_NV_cooperative_matrix2.CooperativeMatrixFlexibleDimensionsPropertiesNV',
+-- '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',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferInfo2',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2',
+-- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM',
+-- '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',
+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuFunctionCreateInfoNVX',
+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuLaunchInfoNVX',
+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuModuleCreateInfoNVX',
+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuModuleTexturingModeCreateInfoNVX',
+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.CudaFunctionCreateInfoNV',
+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.CudaLaunchInfoNV',
+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.CudaModuleCreateInfoNV',
+-- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.D3D12FenceSubmitInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerMarkerInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerObjectNameInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerObjectTagInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportCallbackCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsLabelEXT',
+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCallbackDataEXT',
+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectNameInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectTagInfoEXT',
+-- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV',
+-- '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',
+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorGetInfoEXT',
+-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo',
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfo',
+-- 'Vulkan.Core10.DescriptorSet.DescriptorSetAllocateInfo',
+-- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.DescriptorSetBindingReferenceVALVE',
+-- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetLayoutBindingFlagsCreateInfo',
+-- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo',
+-- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.DescriptorSetLayoutHostMappingInfoVALVE',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.DescriptorSetLayoutSupport',
+-- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountAllocateInfo',
+-- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountLayoutSupport',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateCreateInfo',
+-- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceBufferMemoryRequirements',
+-- 'Vulkan.Core10.Device.DeviceCreateInfo',
+-- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceDeviceMemoryReportCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.DeviceDiagnosticsConfigCreateInfoNV',
+-- 'Vulkan.Extensions.VK_EXT_display_control.DeviceEventInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultCountsEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultInfoEXT',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupBindSparseInfo',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupCommandBufferBeginInfo',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.DeviceGroupDeviceCreateInfo',
+-- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupPresentCapabilitiesKHR',
+-- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupPresentInfoKHR',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',
+-- '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',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.DevicePipelineBinaryInternalCacheControlKHR',
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.DevicePrivateDataCreateInfo',
+-- 'Vulkan.Core10.Device.DeviceQueueCreateInfo',
+-- 'Vulkan.Extensions.VK_KHR_global_priority.DeviceQueueGlobalPriorityCreateInfoKHR',
+-- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.DeviceQueueInfo2',
+-- 'Vulkan.Extensions.VK_ARM_scheduling_controls.DeviceQueueShaderCoreControlCreateInfoARM',
+-- 'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingInfoLUNARG',
+-- 'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingListLUNARG',
+-- 'Vulkan.Extensions.VK_EXT_directfb_surface.DirectFBSurfaceCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_display_control.DisplayEventInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_display.DisplayModeCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayModeProperties2KHR',
+-- 'Vulkan.Extensions.VK_NV_display_stereo.DisplayModeStereoPropertiesNV',
+-- 'Vulkan.Extensions.VK_AMD_display_native_hdr.DisplayNativeHdrSurfaceCapabilitiesAMD',
+-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayPlaneCapabilities2KHR',
+-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayPlaneInfo2KHR',
+-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayPlaneProperties2KHR',
+-- 'Vulkan.Extensions.VK_EXT_display_control.DisplayPowerInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_display_swapchain.DisplayPresentInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayProperties2KHR',
+-- 'Vulkan.Extensions.VK_KHR_display.DisplaySurfaceCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_NV_display_stereo.DisplaySurfaceStereoCreateInfoNV',
+-- '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',
+-- 'Vulkan.Extensions.VK_NV_external_memory.ExportMemoryAllocateInfoNV',
+-- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ExportMemoryWin32HandleInfoKHR',
+-- 'Vulkan.Extensions.VK_NV_external_memory_win32.ExportMemoryWin32HandleInfoNV',
+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalBufferInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalCommandQueueInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalDeviceInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalIOSurfaceInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectsInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalSharedEventInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore.ExportSemaphoreCreateInfo',
+-- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ExportSemaphoreWin32HandleInfoKHR',
+-- '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',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.ExternalSemaphoreProperties',
+-- 'Vulkan.Core10.Fence.FenceCreateInfo',
+-- 'Vulkan.Extensions.VK_KHR_external_fence_fd.FenceGetFdInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_external_fence_win32.FenceGetWin32HandleInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT',
+-- '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',
+-- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.FramebufferMixedSamplesCombinationNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsInfoEXT',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsMemoryRequirementsInfoEXT',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsMemoryRequirementsInfoNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsPipelineInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsShaderInfoEXT',
+-- '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_HUAWEI_hdr_vivid.HdrVividDynamicMetadataHUAWEI',
+-- '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.Extensions.VK_MESA_image_alignment_control.ImageAlignmentControlCreateInfoMESA',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2',
+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.ImageCaptureDescriptorDataInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT',
+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionPropertiesEXT',
+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageConstraintsInfoFUCHSIA',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2',
+-- 'Vulkan.Core10.Image.ImageCreateInfo',
+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierExplicitCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierListCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierPropertiesEXT',
+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageFormatConstraintsInfoFUCHSIA',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2',
+-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageMemoryRequirementsInfo2',
+-- 'Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface.ImagePipeSurfaceCreateInfoFUCHSIA',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.ImagePlaneMemoryRequirementsInfo',
+-- '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_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',
+-- 'Vulkan.Core10.ImageView.ImageViewCreateInfo',
+-- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX',
+-- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.ImageViewMinLodCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM',
+-- 'Vulkan.Extensions.VK_EXT_image_sliced_view_of_3d.ImageViewSlicedCreateInfoEXT',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo',
+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID',
+-- 'Vulkan.Extensions.VK_KHR_external_fence_fd.ImportFenceFdInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_external_fence_win32.ImportFenceWin32HandleInfoKHR',
+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImportMemoryBufferCollectionFUCHSIA',
+-- 'Vulkan.Extensions.VK_KHR_external_memory_fd.ImportMemoryFdInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_external_memory_host.ImportMemoryHostPointerInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR',
+-- '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_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',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectCommandsLayoutCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutCreateInfoNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectCommandsLayoutTokenEXT',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectExecutionSetCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectExecutionSetPipelineInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectExecutionSetShaderInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectExecutionSetShaderLayoutInfoEXT',
+-- '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_EXT_layer_settings.LayerSettingsCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_MVK_macos_surface.MacOSSurfaceCreateInfoMVK',
+-- 'Vulkan.Core10.Memory.MappedMemoryRange',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo',
+-- 'Vulkan.Core10.Memory.MemoryAllocateInfo',
+-- 'Vulkan.Core10.OtherTypes.MemoryBarrier',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.MemoryBarrier2',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements',
+-- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryFdPropertiesKHR',
+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.MemoryGetAndroidHardwareBufferInfoANDROID',
+-- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR',
+-- 'Vulkan.Extensions.VK_NV_external_memory_rdma.MemoryGetRemoteAddressInfoNV',
+-- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR',
+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA',
+-- 'Vulkan.Extensions.VK_EXT_external_memory_host.MemoryHostPointerPropertiesEXT',
+-- 'Vulkan.Extensions.VK_KHR_map_memory2.MemoryMapInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_map_memory_placed.MemoryMapPlacedInfoEXT',
+-- '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',
+-- 'Vulkan.Extensions.VK_EXT_metal_surface.MetalSurfaceCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildSizesInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapVersionInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT',
+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT',
+-- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.MultiviewPerViewAttributesInfoNVX',
+-- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM',
+-- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.MutableDescriptorTypeCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowExecuteInfoNV',
+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowImageFormatInfoNV',
+-- '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',
+-- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceMarkerInfoINTEL',
+-- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceOverrideInfoINTEL',
+-- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceQuerySubmitInfoKHR',
+-- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceStreamMarkerInfoINTEL',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage.PhysicalDevice16BitStorageFeatures',
+-- 'Vulkan.Extensions.VK_EXT_4444_formats.PhysicalDevice4444FormatsFeaturesEXT',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage.PhysicalDevice8BitStorageFeatures',
+-- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.PhysicalDeviceASTCDecodeFeaturesEXT',
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructureFeaturesKHR',
+-- '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_AMD_anti_lag.PhysicalDeviceAntiLagFeaturesAMD',
+-- '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',
+-- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.PhysicalDeviceBorderColorSwizzleFeaturesEXT',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures',
+-- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT',
+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderFeaturesHUAWEI',
+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',
+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI',
+-- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',
+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT',
+-- 'Vulkan.Extensions.VK_NV_command_buffer_inheritance.PhysicalDeviceCommandBufferInheritanceFeaturesNV',
+-- 'Vulkan.Extensions.VK_KHR_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesPropertiesKHR',
+-- 'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT',
+-- 'Vulkan.Extensions.VK_NV_cooperative_matrix2.PhysicalDeviceCooperativeMatrix2FeaturesNV',
+-- 'Vulkan.Extensions.VK_NV_cooperative_matrix2.PhysicalDeviceCooperativeMatrix2PropertiesNV',
+-- '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_NV_cuda_kernel_launch.PhysicalDeviceCudaKernelLaunchFeaturesNV',
+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.PhysicalDeviceCudaKernelLaunchPropertiesNV',
+-- '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_control.PhysicalDeviceDepthClampControlFeaturesEXT',
+-- '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.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties',
+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT',
+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT',
+-- '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_EXT_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsPropertiesNV',
+-- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT',
+-- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV',
+-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PhysicalDeviceDiscardRectanglePropertiesEXT',
+-- 'Vulkan.Extensions.VK_NV_displacement_micromap.PhysicalDeviceDisplacementMicromapFeaturesNV',
+-- 'Vulkan.Extensions.VK_NV_displacement_micromap.PhysicalDeviceDisplacementMicromapPropertiesNV',
+-- '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_KHR_dynamic_rendering_local_read.PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR',
+-- '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',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties',
+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT',
+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT',
+-- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',
+-- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM',
+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',
+-- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricPropertiesKHR',
+-- 'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT',
+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV',
+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV',
+-- '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_HUAWEI_hdr_vivid.PhysicalDeviceHdrVividFeaturesHUAWEI',
+-- '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_MESA_image_alignment_control.PhysicalDeviceImageAlignmentControlFeaturesMESA',
+-- 'Vulkan.Extensions.VK_MESA_image_alignment_control.PhysicalDeviceImageAlignmentControlPropertiesMESA',
+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.PhysicalDeviceImageCompressionControlFeaturesEXT',
+-- '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',
+-- 'Vulkan.Extensions.VK_EXT_image_sliced_view_of_3d.PhysicalDeviceImageSlicedViewOf3DFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.PhysicalDeviceImageViewImageFormatInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.PhysicalDeviceImageViewMinLodFeaturesEXT',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures',
+-- 'Vulkan.Extensions.VK_KHR_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesKHR',
+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV',
+-- '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_KHR_maintenance7.PhysicalDeviceLayeredApiPropertiesKHR',
+-- 'Vulkan.Extensions.VK_KHR_maintenance7.PhysicalDeviceLayeredApiPropertiesListKHR',
+-- 'Vulkan.Extensions.VK_KHR_maintenance7.PhysicalDeviceLayeredApiVulkanPropertiesKHR',
+-- 'Vulkan.Extensions.VK_MSFT_layered_driver.PhysicalDeviceLayeredDriverPropertiesMSFT',
+-- 'Vulkan.Extensions.VK_EXT_legacy_dithering.PhysicalDeviceLegacyDitheringFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_legacy_vertex_attributes.PhysicalDeviceLegacyVertexAttributesFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_legacy_vertex_attributes.PhysicalDeviceLegacyVertexAttributesPropertiesEXT',
+-- 'Vulkan.Extensions.VK_KHR_line_rasterization.PhysicalDeviceLineRasterizationFeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_line_rasterization.PhysicalDeviceLineRasterizationPropertiesKHR',
+-- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV',
+-- '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_KHR_maintenance6.PhysicalDeviceMaintenance6FeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_maintenance6.PhysicalDeviceMaintenance6PropertiesKHR',
+-- 'Vulkan.Extensions.VK_KHR_maintenance7.PhysicalDeviceMaintenance7FeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_maintenance7.PhysicalDeviceMaintenance7PropertiesKHR',
+-- 'Vulkan.Extensions.VK_EXT_map_memory_placed.PhysicalDeviceMapMemoryPlacedFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_map_memory_placed.PhysicalDeviceMapMemoryPlacedPropertiesEXT',
+-- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT',
+-- 'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionFeaturesNV',
+-- 'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionPropertiesNV',
+-- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceMemoryProperties2',
+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderFeaturesEXT',
+-- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV',
+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderPropertiesEXT',
+-- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV',
+-- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawPropertiesEXT',
+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewFeatures',
+-- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX',
+-- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM',
+-- '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',
+-- 'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowFeaturesNV',
+-- 'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowPropertiesNV',
+-- 'Vulkan.Extensions.VK_EXT_pci_bus_info.PhysicalDevicePCIBusInfoPropertiesEXT',
+-- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT',
+-- 'Vulkan.Extensions.VK_NV_per_stage_descriptor_set.PhysicalDevicePerStageDescriptorSetFeaturesNV',
+-- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.PhysicalDevicePipelineBinaryFeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.PhysicalDevicePipelineBinaryPropertiesKHR',
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',
+-- 'Vulkan.Extensions.VK_EXT_pipeline_library_group_handles.PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_pipeline_properties.PhysicalDevicePipelinePropertiesFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_pipeline_protected_access.PhysicalDevicePipelineProtectedAccessFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessPropertiesEXT',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties',
+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR',
+-- 'Vulkan.Extensions.VK_NV_present_barrier.PhysicalDevicePresentBarrierFeaturesNV',
+-- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR',
+-- 'Vulkan.Extensions.VK_EXT_present_mode_fifo_latest_ready.PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT',
+-- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR',
+-- 'Vulkan.Extensions.VK_EXT_primitive_topology_list_restart.PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_primitives_generated_query.PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT',
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PhysicalDevicePrivateDataFeatures',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',
+-- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures',
+-- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties',
+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT',
+-- 'Vulkan.Extensions.VK_KHR_push_descriptor.PhysicalDevicePushDescriptorPropertiesKHR',
+-- 'Vulkan.Extensions.VK_EXT_rgba10x6_formats.PhysicalDeviceRGBA10X6FormatsFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access.PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT',
+-- 'Vulkan.Extensions.VK_NV_raw_access_chains.PhysicalDeviceRawAccessChainsFeaturesNV',
+-- 'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder.PhysicalDeviceRayTracingInvocationReorderFeaturesNV',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder.PhysicalDeviceRayTracingInvocationReorderPropertiesNV',
+-- '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_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR',
+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing_validation.PhysicalDeviceRayTracingValidationFeaturesNV',
+-- 'Vulkan.Extensions.VK_IMG_relaxed_line_rasterization.PhysicalDeviceRelaxedLineRasterizationFeaturesIMG',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedFeaturesARM',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedPropertiesARM',
+-- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',
+-- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',
+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT',
+-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.PhysicalDeviceSamplerFilterMinmaxProperties',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures',
+-- 'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures',
+-- 'Vulkan.Extensions.VK_ARM_scheduling_controls.PhysicalDeviceSchedulingControlsFeaturesARM',
+-- 'Vulkan.Extensions.VK_ARM_scheduling_controls.PhysicalDeviceSchedulingControlsPropertiesARM',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',
+-- 'Vulkan.Extensions.VK_NV_shader_atomic_float16_vector.PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV',
+-- 'Vulkan.Extensions.VK_EXT_shader_atomic_float2.PhysicalDeviceShaderAtomicFloat2FeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features',
+-- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',
+-- 'Vulkan.Extensions.VK_ARM_shader_core_builtins.PhysicalDeviceShaderCoreBuiltinsFeaturesARM',
+-- 'Vulkan.Extensions.VK_ARM_shader_core_builtins.PhysicalDeviceShaderCoreBuiltinsPropertiesARM',
+-- '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.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.Extensions.VK_KHR_shader_expect_assume.PhysicalDeviceShaderExpectAssumeFeaturesKHR',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features',
+-- 'Vulkan.Extensions.VK_KHR_shader_float_controls2.PhysicalDeviceShaderFloatControls2FeaturesKHR',
+-- 'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT',
+-- 'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeatures',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductProperties',
+-- 'Vulkan.Extensions.VK_INTEL_shader_integer_functions2.PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL',
+-- 'Vulkan.Extensions.VK_KHR_shader_maximal_reconvergence.PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR',
+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierPropertiesEXT',
+-- 'Vulkan.Extensions.VK_EXT_shader_object.PhysicalDeviceShaderObjectFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_shader_object.PhysicalDeviceShaderObjectPropertiesEXT',
+-- 'Vulkan.Extensions.VK_KHR_shader_quad_control.PhysicalDeviceShaderQuadControlFeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_shader_relaxed_extended_instruction.PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR',
+-- 'Vulkan.Extensions.VK_EXT_shader_replicated_composites.PhysicalDeviceShaderReplicatedCompositesFeaturesEXT',
+-- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV',
+-- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsPropertiesNV',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures',
+-- 'Vulkan.Extensions.VK_KHR_shader_subgroup_rotate.PhysicalDeviceShaderSubgroupRotateFeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow.PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeatures',
+-- 'Vulkan.Extensions.VK_EXT_shader_tile_image.PhysicalDeviceShaderTileImageFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_shader_tile_image.PhysicalDeviceShaderTileImagePropertiesEXT',
+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImageFeaturesNV',
+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2',
+-- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties',
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures',
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlProperties',
+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.PhysicalDeviceSubpassMergeFeedbackFeaturesEXT',
+-- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI',
+-- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingPropertiesHUAWEI',
+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR',
+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.PhysicalDeviceSwapchainMaintenance1FeaturesEXT',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features',
+-- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT',
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures',
+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.PhysicalDeviceTilePropertiesFeaturesQCOM',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreFeatures',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreProperties',
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_tooling_info.PhysicalDeviceToolProperties',
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures',
+-- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesKHR',
+-- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT',
+-- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR',
+-- 'Vulkan.Extensions.VK_EXT_vertex_attribute_robustness.PhysicalDeviceVertexAttributeRobustnessFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoEncodeAV1FeaturesKHR VkPhysicalDeviceVideoEncodeAV1FeaturesKHR>,
+-- <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#VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR VkPhysicalDeviceVideoFormatInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoMaintenance1FeaturesKHR VkPhysicalDeviceVideoMaintenance1FeaturesKHR>,
+-- 'Vulkan.Core12.PhysicalDeviceVulkan11Features',
+-- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties',
+-- 'Vulkan.Core12.PhysicalDeviceVulkan12Features',
+-- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties',
+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Features',
+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties',
+-- '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_KHR_pipeline_binary.PipelineBinaryCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryDataInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryHandlesInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryKeyKHR',
+-- 'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo',
+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT',
+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',
+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',
+-- '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.Extensions.VK_KHR_pipeline_binary.PipelineCreateInfoKHR',
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',
+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo',
+-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT',
+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableInternalRepresentationKHR',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutablePropertiesKHR',
+-- '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',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR',
+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo',
+-- 'Vulkan.Extensions.VK_EXT_pipeline_properties.PipelinePropertiesIdentifierEXT',
+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_line_rasterization.PipelineRasterizationLineStateCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT',
+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo',
+-- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD',
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo',
+-- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV',
+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT',
+-- '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',
+-- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR',
+-- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo',
+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportCoarseSampleOrderStateCreateInfoNV',
+-- 'Vulkan.Extensions.VK_EXT_depth_clamp_control.PipelineViewportDepthClampControlCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV',
+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV',
+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo',
+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV',
+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV',
+-- 'Vulkan.Extensions.VK_GGP_frame_token.PresentFrameTokenGGP',
+-- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR',
+-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_incremental_present.PresentRegionsKHR',
+-- 'Vulkan.Extensions.VK_GOOGLE_display_timing.PresentTimesInfoGOOGLE',
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PrivateDataSlotCreateInfo',
+-- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.ProtectedSubmitInfo',
+-- 'Vulkan.Extensions.VK_KHR_maintenance6.PushConstantsInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_maintenance6.PushDescriptorSetInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_maintenance6.PushDescriptorSetWithTemplateInfoKHR',
+-- 'Vulkan.Extensions.VK_NV_low_latency.QueryLowLatencySupportNV',
+-- 'Vulkan.Core10.Query.QueryPoolCreateInfo',
+-- 'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_INTEL_performance_query.QueryPoolPerformanceQueryCreateInfoINTEL',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR VkQueryPoolVideoEncodeFeedbackCreateInfoKHR>,
+-- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointProperties2NV',
+-- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV',
+-- 'Vulkan.Extensions.VK_KHR_global_priority.QueueFamilyGlobalPriorityPropertiesKHR',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR VkQueueFamilyQueryResultStatusPropertiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyVideoPropertiesKHR VkQueueFamilyVideoPropertiesKHR>,
+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',
+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineInterfaceCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingShaderGroupCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingShaderGroupCreateInfoNV',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.ReleaseCapturedPipelineDataInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.ReleaseSwapchainImagesInfoEXT',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',
+-- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo',
+-- 'Vulkan.Core10.Pass.RenderPassCreateInfo',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2',
+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationControlEXT',
+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationFeedbackCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.RenderPassInputAttachmentAspectCreateInfo',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo',
+-- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeInfoARM',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM',
+-- '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_local_read.RenderingAttachmentLocationInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo',
+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+-- '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',
+-- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR',
+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreSignalInfo',
+-- '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_KHR_maintenance6.SetDescriptorBufferOffsetsInfoEXT',
+-- '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',
+-- 'Vulkan.Extensions.VK_EXT_validation_cache.ShaderModuleValidationCacheCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.SharedPresentSurfaceCapabilitiesKHR',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.SparseImageFormatProperties2',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2',
+-- 'Vulkan.Extensions.VK_GGP_stream_descriptor_surface.StreamDescriptorSurfaceCreateInfoGGP',
+-- 'Vulkan.Core10.Queue.SubmitInfo',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassBeginInfo',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassEndInfo',
+-- '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_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',
+-- 'Vulkan.Extensions.VK_NV_present_barrier.SurfaceCapabilitiesPresentBarrierNV',
+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceFormat2KHR',
+-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeCompatibilityEXT',
+-- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT',
+-- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT',
+-- 'Vulkan.Extensions.VK_KHR_surface_protected_capabilities.SurfaceProtectedCapabilitiesKHR',
+-- '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',
+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentScalingCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.SysmemColorSpaceFUCHSIA',
+-- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD',
+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.TilePropertiesQCOM',
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo',
+-- 'Vulkan.Extensions.VK_EXT_validation_cache.ValidationCacheCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_validation_flags.ValidationFlagsEXT',
+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT',
+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputBindingDescription2EXT',
+-- 'Vulkan.Extensions.VK_NN_vi_surface.ViSurfaceCreateInfoNN',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBeginCodingInfoKHR VkVideoBeginCodingInfoKHR>,
+-- <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#VkVideoCodingControlInfoKHR VkVideoCodingControlInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeAV1CapabilitiesKHR VkVideoDecodeAV1CapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeAV1DpbSlotInfoKHR VkVideoDecodeAV1DpbSlotInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeAV1PictureInfoKHR VkVideoDecodeAV1PictureInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeAV1ProfileInfoKHR VkVideoDecodeAV1ProfileInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeAV1SessionParametersCreateInfoKHR VkVideoDecodeAV1SessionParametersCreateInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeCapabilitiesKHR VkVideoDecodeCapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesKHR VkVideoDecodeH264CapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264DpbSlotInfoKHR VkVideoDecodeH264DpbSlotInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264PictureInfoKHR VkVideoDecodeH264PictureInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileInfoKHR VkVideoDecodeH264ProfileInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersAddInfoKHR VkVideoDecodeH264SessionParametersAddInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersCreateInfoKHR VkVideoDecodeH264SessionParametersCreateInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265CapabilitiesKHR VkVideoDecodeH265CapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265DpbSlotInfoKHR VkVideoDecodeH265DpbSlotInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265PictureInfoKHR VkVideoDecodeH265PictureInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileInfoKHR VkVideoDecodeH265ProfileInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersAddInfoKHR VkVideoDecodeH265SessionParametersAddInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersCreateInfoKHR VkVideoDecodeH265SessionParametersCreateInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeUsageInfoKHR VkVideoDecodeUsageInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1CapabilitiesKHR VkVideoEncodeAV1CapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1DpbSlotInfoKHR VkVideoEncodeAV1DpbSlotInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1GopRemainingFrameInfoKHR VkVideoEncodeAV1GopRemainingFrameInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1PictureInfoKHR VkVideoEncodeAV1PictureInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1ProfileInfoKHR VkVideoEncodeAV1ProfileInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1QualityLevelPropertiesKHR VkVideoEncodeAV1QualityLevelPropertiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1QuantizationMapCapabilitiesKHR VkVideoEncodeAV1QuantizationMapCapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1RateControlInfoKHR VkVideoEncodeAV1RateControlInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1RateControlLayerInfoKHR VkVideoEncodeAV1RateControlLayerInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1SessionCreateInfoKHR VkVideoEncodeAV1SessionCreateInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1SessionParametersCreateInfoKHR VkVideoEncodeAV1SessionParametersCreateInfoKHR>,
+-- <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#VkVideoEncodeH264CapabilitiesKHR VkVideoEncodeH264CapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264DpbSlotInfoKHR VkVideoEncodeH264DpbSlotInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264GopRemainingFrameInfoKHR VkVideoEncodeH264GopRemainingFrameInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264NaluSliceInfoKHR VkVideoEncodeH264NaluSliceInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264PictureInfoKHR VkVideoEncodeH264PictureInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileInfoKHR VkVideoEncodeH264ProfileInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264QualityLevelPropertiesKHR VkVideoEncodeH264QualityLevelPropertiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264QuantizationMapCapabilitiesKHR VkVideoEncodeH264QuantizationMapCapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlInfoKHR VkVideoEncodeH264RateControlInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlLayerInfoKHR VkVideoEncodeH264RateControlLayerInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionCreateInfoKHR VkVideoEncodeH264SessionCreateInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersAddInfoKHR VkVideoEncodeH264SessionParametersAddInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersCreateInfoKHR VkVideoEncodeH264SessionParametersCreateInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersFeedbackInfoKHR VkVideoEncodeH264SessionParametersFeedbackInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersGetInfoKHR VkVideoEncodeH264SessionParametersGetInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265CapabilitiesKHR VkVideoEncodeH265CapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265DpbSlotInfoKHR VkVideoEncodeH265DpbSlotInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265GopRemainingFrameInfoKHR VkVideoEncodeH265GopRemainingFrameInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265NaluSliceSegmentInfoKHR VkVideoEncodeH265NaluSliceSegmentInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265PictureInfoKHR VkVideoEncodeH265PictureInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileInfoKHR VkVideoEncodeH265ProfileInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265QualityLevelPropertiesKHR VkVideoEncodeH265QualityLevelPropertiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265QuantizationMapCapabilitiesKHR VkVideoEncodeH265QuantizationMapCapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlInfoKHR VkVideoEncodeH265RateControlInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlLayerInfoKHR VkVideoEncodeH265RateControlLayerInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionCreateInfoKHR VkVideoEncodeH265SessionCreateInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersAddInfoKHR VkVideoEncodeH265SessionParametersAddInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersCreateInfoKHR VkVideoEncodeH265SessionParametersCreateInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersFeedbackInfoKHR VkVideoEncodeH265SessionParametersFeedbackInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersGetInfoKHR VkVideoEncodeH265SessionParametersGetInfoKHR>,
+-- <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#VkVideoEncodeQuantizationMapCapabilitiesKHR VkVideoEncodeQuantizationMapCapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeQuantizationMapInfoKHR VkVideoEncodeQuantizationMapInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR>,
+-- <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#VkVideoFormatAV1QuantizationMapPropertiesKHR VkVideoFormatAV1QuantizationMapPropertiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatH265QuantizationMapPropertiesKHR VkVideoFormatH265QuantizationMapPropertiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatQuantizationMapPropertiesKHR VkVideoFormatQuantizationMapPropertiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoInlineQueryInfoKHR VkVideoInlineQueryInfoKHR>,
+-- <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#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoReferenceSlotInfoKHR VkVideoReferenceSlotInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionMemoryRequirementsKHR VkVideoSessionMemoryRequirementsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersCreateInfoKHR VkVideoSessionParametersCreateInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersUpdateInfoKHR VkVideoSessionParametersUpdateInfoKHR>,
+-- 'Vulkan.Extensions.VK_KHR_wayland_surface.WaylandSurfaceCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR',
+-- 'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV',
+-- 'Vulkan.Extensions.VK_KHR_win32_surface.Win32SurfaceCreateInfoKHR',
+-- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet',
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.WriteDescriptorSetAccelerationStructureKHR',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing.WriteDescriptorSetAccelerationStructureNV',
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.WriteIndirectExecutionSetPipelineEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.WriteIndirectExecutionSetShaderEXT',
+-- 'Vulkan.Extensions.VK_KHR_xcb_surface.XcbSurfaceCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_xlib_surface.XlibSurfaceCreateInfoKHR'
+newtype StructureType = StructureType Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_APPLICATION_INFO"
+pattern STRUCTURE_TYPE_APPLICATION_INFO = StructureType 0
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"
+pattern STRUCTURE_TYPE_INSTANCE_CREATE_INFO = StructureType 1
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"
+pattern STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = StructureType 2
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"
+pattern STRUCTURE_TYPE_DEVICE_CREATE_INFO = StructureType 3
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBMIT_INFO"
+pattern STRUCTURE_TYPE_SUBMIT_INFO = StructureType 4
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"
+pattern STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = StructureType 5
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"
+pattern STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = StructureType 6
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"
+pattern STRUCTURE_TYPE_BIND_SPARSE_INFO = StructureType 7
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"
+pattern STRUCTURE_TYPE_FENCE_CREATE_INFO = StructureType 8
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"
+pattern STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = StructureType 9
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"
+pattern STRUCTURE_TYPE_EVENT_CREATE_INFO = StructureType 10
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"
+pattern STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = StructureType 11
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"
+pattern STRUCTURE_TYPE_BUFFER_CREATE_INFO = StructureType 12
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"
+pattern STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = StructureType 13
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"
+pattern STRUCTURE_TYPE_IMAGE_CREATE_INFO = StructureType 14
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"
+pattern STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = StructureType 15
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"
+pattern STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = StructureType 16
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = StructureType 17
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = StructureType 18
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = StructureType 19
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = StructureType 20
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = StructureType 21
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = StructureType 22
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = StructureType 23
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = StructureType 24
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = StructureType 25
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = StructureType 26
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = StructureType 27
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"
+pattern STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = StructureType 28
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"
+pattern STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = StructureType 29
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = StructureType 30
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"
+pattern STRUCTURE_TYPE_SAMPLER_CREATE_INFO = StructureType 31
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"
+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = StructureType 32
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"
+pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = StructureType 33
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"
+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = StructureType 34
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"
+pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = StructureType 35
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"
+pattern STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = StructureType 36
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"
+pattern STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = StructureType 37
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"
+pattern STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = StructureType 38
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"
+pattern STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = StructureType 39
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"
+pattern STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = StructureType 40
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"
+pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = StructureType 41
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"
+pattern STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = StructureType 42
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"
+pattern STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = StructureType 43
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"
+pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = StructureType 44
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"
+pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = StructureType 45
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_BARRIER"
+pattern STRUCTURE_TYPE_MEMORY_BARRIER = StructureType 46
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO"
+pattern STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = StructureType 47
+
+-- 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_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT = StructureType 1000608000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = StructureType 1000593002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = StructureType 1000593001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = StructureType 1000593000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI"
+pattern STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI = StructureType 1000590001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI = StructureType 1000590000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = StructureType 1000582001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = StructureType 1000582000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA"
+pattern STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = StructureType 1000575002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = StructureType 1000575001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = StructureType 1000575000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT"
+pattern STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT = StructureType 1000572014
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT"
+pattern STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT = StructureType 1000572013
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT"
+pattern STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = StructureType 1000572012
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT"
+pattern STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT = StructureType 1000572011
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT"
+pattern STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT = StructureType 1000572010
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT"
+pattern STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT = StructureType 1000572009
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT"
+pattern STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT = StructureType 1000572008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT"
+pattern STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT = StructureType 1000572007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT = StructureType 1000572006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT"
+pattern STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT = StructureType 1000572004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT = StructureType 1000572003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT"
+pattern STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT = StructureType 1000572002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT = StructureType 1000572001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT = StructureType 1000572000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = StructureType 1000568000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = StructureType 1000564000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = StructureType 1000563000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = StructureType 1000562004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR = StructureType 1000562003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR = StructureType 1000562002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR = StructureType 1000562001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR = StructureType 1000562000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV = StructureType 1000559000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = StructureType 1000558000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = StructureType 1000555000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV = StructureType 1000551001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV = StructureType 1000551000
+
+-- 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_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT"
+pattern STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = StructureType 1000545008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT"
+pattern STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = StructureType 1000545007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR"
+pattern STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = StructureType 1000545006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR"
+pattern STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = StructureType 1000545005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR"
+pattern STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = StructureType 1000545004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR"
+pattern STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = StructureType 1000545003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR"
+pattern STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = StructureType 1000545002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = StructureType 1000545001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = StructureType 1000545000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = StructureType 1000544000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR"
+pattern STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = StructureType 1000184000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = StructureType 1000259002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = StructureType 1000259001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = StructureType 1000259000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = StructureType 1000265000
+
+-- 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_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = StructureType 1000528000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = StructureType 1000190002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = StructureType 1000190001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = StructureType 1000525000
+
+-- 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_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = StructureType 1000516000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR = StructureType 1000511000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR = StructureType 1000201000
+
+-- 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
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = StructureType 1000497001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = StructureType 1000497000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = StructureType 1000496000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT = StructureType 1000495001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT = StructureType 1000495000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = StructureType 1000351002
+
+-- 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
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = StructureType 1000490000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = StructureType 1000488000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC"
+pattern STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = StructureType 1000485001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = StructureType 1000485000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM"
+pattern STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = StructureType 1000484001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = StructureType 1000484000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR = StructureType 1000483009
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR"
+pattern STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR = StructureType 1000483008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR = StructureType 1000483007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR = StructureType 1000483006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR"
+pattern STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR = StructureType 1000483005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR = StructureType 1000483004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR = StructureType 1000483003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR = StructureType 1000483002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR = StructureType 1000483001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR = StructureType 1000483000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"
+pattern STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = StructureType 1000352002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"
+pattern STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = StructureType 1000352001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = StructureType 1000482002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = StructureType 1000482001
+
+-- 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_ANTI_LAG_PRESENTATION_INFO_AMD"
+pattern STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD = StructureType 1000476002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD"
+pattern STRUCTURE_TYPE_ANTI_LAG_DATA_AMD = StructureType 1000476001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD = StructureType 1000476000
+
+-- 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
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = StructureType 1000465000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV"
+pattern STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = StructureType 1000464010
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV"
+pattern STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = StructureType 1000464005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = StructureType 1000464004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = StructureType 1000464003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV"
+pattern STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = StructureType 1000464002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = StructureType 1000464001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = StructureType 1000464000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = StructureType 1000342000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT"
+pattern STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = StructureType 1000462003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = StructureType 1000462002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = StructureType 1000462001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = StructureType 1000462000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG"
+pattern STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = StructureType 1000459001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG"
+pattern STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = StructureType 1000459000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = StructureType 1000458003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = StructureType 1000458002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT"
+pattern STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = StructureType 1000458001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = StructureType 1000458000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = StructureType 1000455001
+
+-- 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
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = StructureType 1000440001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = StructureType 1000440000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = StructureType 1000437000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = StructureType 1000434000
+
+-- 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
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = StructureType 1000427000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = StructureType 1000426001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = StructureType 1000426000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"
+pattern STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = StructureType 1000425002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = StructureType 1000425001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = StructureType 1000425000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM"
+pattern STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = StructureType 1000424004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM"
+pattern STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = StructureType 1000424003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM"
+pattern STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = StructureType 1000424002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = StructureType 1000424001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = StructureType 1000424000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = StructureType 1000422000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = StructureType 1000421000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE"
+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = StructureType 1000420002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE"
+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = StructureType 1000420001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = StructureType 1000420000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = StructureType 1000418001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = StructureType 1000418000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = StructureType 1000417002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = StructureType 1000417001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM"
+pattern STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = StructureType 1000417000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = StructureType 1000416000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = StructureType 1000415000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = StructureType 1000412000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = StructureType 1000411001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = StructureType 1000411000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = StructureType 1000404002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = StructureType 1000404001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = StructureType 1000404000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = StructureType 1000397002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = StructureType 1000397001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = StructureType 1000397000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = StructureType 1000396009
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT"
+pattern STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = StructureType 1000396008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = StructureType 1000396007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = StructureType 1000396006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = StructureType 1000396005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT"
+pattern STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = StructureType 1000396004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT"
+pattern STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = StructureType 1000396003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT"
+pattern STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = StructureType 1000396002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT"
+pattern STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = StructureType 1000396001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT"
+pattern STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = StructureType 1000396000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = StructureType 1000395001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = StructureType 1000395000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = StructureType 1000393000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = StructureType 1000392001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = StructureType 1000392000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = StructureType 1000391001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = StructureType 1000391000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = StructureType 1000386000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = StructureType 1000382000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = StructureType 1000381001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = StructureType 1000381000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX"
+pattern STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = StructureType 1000378000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = StructureType 1000377000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT"
+pattern STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = StructureType 1000376002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT"
+pattern STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = StructureType 1000376001
+
+-- 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
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = StructureType 1000372000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = StructureType 1000371001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV"
+pattern STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = StructureType 1000371000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = StructureType 1000370000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = StructureType 1000369002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = StructureType 1000369001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"
+pattern STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = StructureType 1000369000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA"
+pattern STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = StructureType 1000366009
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA"
+pattern STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = StructureType 1000366008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA"
+pattern STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = StructureType 1000366007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA"
+pattern STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = StructureType 1000366006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA"
+pattern STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = StructureType 1000366005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA"
+pattern STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = StructureType 1000366004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA"
+pattern STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = StructureType 1000366003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA"
+pattern STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = StructureType 1000366002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA"
+pattern STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = StructureType 1000366001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA"
+pattern STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = StructureType 1000366000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA"
+pattern STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000365001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"
+pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000365000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA"
+pattern STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000364002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA"
+pattern STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = StructureType 1000364001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA"
+pattern STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000364000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT = StructureType 1000361000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = StructureType 1000356000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = StructureType 1000355001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = StructureType 1000355000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT"
+pattern STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = StructureType 1000354001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = StructureType 1000354000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = StructureType 1000353000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000352000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = StructureType 1000346000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = StructureType 1000344000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT"
+pattern STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = StructureType 1000341002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT"
+pattern STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = StructureType 1000341001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = StructureType 1000341000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = StructureType 1000340000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = StructureType 1000339000
+
+-- 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_COMPRESSION_CONTROL_EXT"
+pattern STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = StructureType 1000338001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = StructureType 1000338000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = StructureType 1000336000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM"
+pattern STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = StructureType 1000333000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = StructureType 1000332001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = StructureType 1000332000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = StructureType 1000330000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = StructureType 1000328001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = StructureType 1000328000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = StructureType 1000327002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = StructureType 1000327001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = StructureType 1000327000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = StructureType 1000326002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = StructureType 1000326001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = StructureType 1000326000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = StructureType 1000323000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = StructureType 1000322000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = StructureType 1000203000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = StructureType 1000321000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = StructureType 1000320002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = StructureType 1000320001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = StructureType 1000320000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316009
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT"
+pattern STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = StructureType 1000316012
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT"
+pattern STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = StructureType 1000316011
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = StructureType 1000316010
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
+pattern STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
+pattern STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
+pattern STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
+pattern STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = StructureType 1000316005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT"
+pattern STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = StructureType 1000316004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT"
+pattern STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = StructureType 1000316003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = StructureType 1000316002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = StructureType 1000316001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = StructureType 1000316000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT"
+pattern STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = StructureType 1000311011
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT"
+pattern STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = StructureType 1000311010
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT"
+pattern STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = StructureType 1000311009
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT"
+pattern STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = StructureType 1000311008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT"
+pattern STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = StructureType 1000311007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT"
+pattern STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = StructureType 1000311006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT"
+pattern STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = StructureType 1000311005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT"
+pattern STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = StructureType 1000311004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT"
+pattern STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = StructureType 1000311003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT"
+pattern STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = StructureType 1000311002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT"
+pattern STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = StructureType 1000311001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = StructureType 1000311000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV"
+pattern STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = StructureType 1000310000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = StructureType 1000307004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = StructureType 1000307003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV"
+pattern STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = StructureType 1000307002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = StructureType 1000307001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = StructureType 1000307000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = StructureType 1000300001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = StructureType 1000300000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = StructureType 1000294001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_ID_KHR"
+pattern STRUCTURE_TYPE_PRESENT_ID_KHR = StructureType 1000294000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = StructureType 1000292002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV"
+pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = StructureType 1000292001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = StructureType 1000292000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = StructureType 1000290000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = StructureType 1000287002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = StructureType 1000287001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = StructureType 1000287000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = StructureType 1000286001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = StructureType 1000286000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT"
+pattern STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = StructureType 1000284002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = StructureType 1000284001
+
+-- 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
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM"
+pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = StructureType 1000282000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = StructureType 1000281000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"
+pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = StructureType 1000278001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = StructureType 1000278000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = StructureType 1000277007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"
+pattern STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = StructureType 1000277006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV"
+pattern STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = StructureType 1000277005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = StructureType 1000277004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV"
+pattern STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = StructureType 1000277003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = StructureType 1000277002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = StructureType 1000277001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = StructureType 1000277000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT"
+pattern STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = StructureType 1000275005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = StructureType 1000275004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT"
+pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = StructureType 1000275003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = StructureType 1000275002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT"
+pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = StructureType 1000275001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = StructureType 1000275000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT"
+pattern STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = StructureType 1000274002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT"
+pattern STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = StructureType 1000274001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT"
+pattern STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = StructureType 1000274000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = StructureType 1000273000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT"
+pattern STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = StructureType 1000272002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = StructureType 1000272001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = StructureType 1000272000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR"
+pattern STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = StructureType 1000271001
+
+-- 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
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = StructureType 1000269004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = StructureType 1000269003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = StructureType 1000269002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_INFO_KHR = StructureType 1000269001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = StructureType 1000269000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000267000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = StructureType 1000260000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = StructureType 1000256000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT"
+pattern STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = StructureType 1000255001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT"
+pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = StructureType 1000255002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT"
+pattern STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = StructureType 1000255000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = StructureType 1000254002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = StructureType 1000254001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = StructureType 1000254000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = StructureType 1000252000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = StructureType 1000251000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV"
+pattern STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = StructureType 1000250002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = StructureType 1000250001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = StructureType 1000250000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = StructureType 1000249002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = StructureType 1000249001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = StructureType 1000249000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = StructureType 1000248000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT"
+pattern STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = StructureType 1000247000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = StructureType 1000244002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = StructureType 1000244000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = StructureType 1000240000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR"
+pattern STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = StructureType 1000239000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT"
+pattern STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = StructureType 1000238001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = StructureType 1000238000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = StructureType 1000237000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = StructureType 1000235000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = StructureType 1000234000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR"
+pattern STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = StructureType 1000232002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR"
+pattern STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = StructureType 1000232001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = StructureType 1000232000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = StructureType 1000229000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = StructureType 1000227000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"
+pattern STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = StructureType 1000044006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = StructureType 1000226004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = StructureType 1000226003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = StructureType 1000226002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = StructureType 1000226001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"
+pattern STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = StructureType 1000226000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"
+pattern STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = StructureType 1000044007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = StructureType 1000218002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = StructureType 1000218001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = StructureType 1000218000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = StructureType 1000217000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA"
+pattern STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = StructureType 1000214000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD"
+pattern STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = StructureType 1000213001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD"
+pattern STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = StructureType 1000213000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = StructureType 1000212000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL"
+pattern STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = StructureType 1000210005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL"
+pattern STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = StructureType 1000210004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL"
+pattern STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = StructureType 1000210003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL"
+pattern STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = StructureType 1000210002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL"
+pattern STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = StructureType 1000210001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL"
+pattern STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = StructureType 1000210000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = StructureType 1000209000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV"
+pattern STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = StructureType 1000314009
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV"
+pattern STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = StructureType 1000314008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = StructureType 1000206001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV"
+pattern STRUCTURE_TYPE_CHECKPOINT_DATA_NV = StructureType 1000206000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = StructureType 1000205002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = StructureType 1000205000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = StructureType 1000204000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = StructureType 1000202001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = StructureType 1000202000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP"
+pattern STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = StructureType 1000191000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = StructureType 1000190000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD"
+pattern STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = StructureType 1000189000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = StructureType 1000388001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = StructureType 1000388000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = StructureType 1000174000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = StructureType 1000185000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD"
+pattern STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = StructureType 1000183000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = StructureType 1000181000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = StructureType 1000178002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = StructureType 1000178001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT"
+pattern STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = StructureType 1000178000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = StructureType 1000170001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = StructureType 1000170000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = StructureType 1000166001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = StructureType 1000166000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = StructureType 1000165012
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = StructureType 1000165011
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = StructureType 1000165009
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = StructureType 1000165008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV"
+pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = StructureType 1000165007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV"
+pattern STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = StructureType 1000165006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV"
+pattern STRUCTURE_TYPE_GEOMETRY_AABB_NV = StructureType 1000165005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV"
+pattern STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = StructureType 1000165004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GEOMETRY_NV"
+pattern STRUCTURE_TYPE_GEOMETRY_NV = StructureType 1000165003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = StructureType 1000165001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = StructureType 1000165000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = StructureType 1000164005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = StructureType 1000164002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = StructureType 1000164001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = StructureType 1000164000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = StructureType 1000163001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = StructureType 1000163000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = StructureType 1000160001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = StructureType 1000160000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT"
+pattern STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = StructureType 1000158006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = StructureType 1000158005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = StructureType 1000158004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = StructureType 1000158003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = StructureType 1000158002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT"
+pattern STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = StructureType 1000158000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = StructureType 1000154001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = StructureType 1000154000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = StructureType 1000152000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = StructureType 1000348013
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = StructureType 1000150018
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = StructureType 1000150016
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = StructureType 1000150015
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = StructureType 1000347001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = StructureType 1000347000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = StructureType 1000150020
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = StructureType 1000150017
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = StructureType 1000150014
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = StructureType 1000150013
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR"
+pattern STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = StructureType 1000150012
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR"
+pattern STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = StructureType 1000150011
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR"
+pattern STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = StructureType 1000150010
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = StructureType 1000150009
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = StructureType 1000150006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = StructureType 1000150005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = StructureType 1000150004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = StructureType 1000150003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = StructureType 1000150002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR"
+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = StructureType 1000150000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR"
+pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = StructureType 1000150007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = StructureType 1000149000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = StructureType 1000148002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = StructureType 1000148001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = StructureType 1000148000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = StructureType 1000143004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = StructureType 1000143003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = StructureType 1000143002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT"
+pattern STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = StructureType 1000143001
+
+-- 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_ATTACHMENT_SAMPLE_COUNT_INFO_AMD"
+pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = StructureType 1000044008
+
+-- 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
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"
+pattern STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = StructureType 1000129005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"
+pattern STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = StructureType 1000129004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"
+pattern STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = StructureType 1000129003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"
+pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = StructureType 1000129002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"
+pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = StructureType 1000129001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"
+pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = StructureType 1000129000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = StructureType 1000128004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"
+pattern STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = StructureType 1000128003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT"
+pattern STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = StructureType 1000128002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT"
+pattern STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = StructureType 1000128001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"
+pattern STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = StructureType 1000128000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK"
+pattern STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = StructureType 1000123000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK"
+pattern STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = StructureType 1000122000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR"
+pattern STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = StructureType 1000121004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR"
+pattern STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = StructureType 1000121003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR"
+pattern STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = StructureType 1000121002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR"
+pattern STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = StructureType 1000121001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR"
+pattern STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = StructureType 1000121000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR"
+pattern STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = StructureType 1000119002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR"
+pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = StructureType 1000119001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = StructureType 1000119000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR"
+pattern STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR = StructureType 1000116007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR"
+pattern STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = StructureType 1000116006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR"
+pattern STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = StructureType 1000116005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR"
+pattern STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = StructureType 1000116004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR"
+pattern STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = StructureType 1000116003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = StructureType 1000116002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = StructureType 1000116001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = StructureType 1000116000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR"
+pattern STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = StructureType 1000115001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR"
+pattern STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = StructureType 1000115000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR"
+pattern STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = StructureType 1000114002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"
+pattern STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = StructureType 1000114001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"
+pattern STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = StructureType 1000114000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR"
+pattern STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = StructureType 1000111000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = StructureType 1000110000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HDR_METADATA_EXT"
+pattern STRUCTURE_TYPE_HDR_METADATA_EXT = StructureType 1000105000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = StructureType 1000102001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = StructureType 1000102000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = StructureType 1000101001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = StructureType 1000101000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = StructureType 1000099001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = StructureType 1000099000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = StructureType 1000098000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX"
+pattern STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = StructureType 1000044009
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = StructureType 1000097000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE"
+pattern STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = StructureType 1000092000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = StructureType 1000091003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT"
+pattern STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = StructureType 1000091002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT"
+pattern STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = StructureType 1000091001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT"
+pattern STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = StructureType 1000091000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"
+pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = StructureType 1000090000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = StructureType 1000087000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR"
+pattern STRUCTURE_TYPE_PRESENT_REGIONS_KHR = StructureType 1000084000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT"
+pattern STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = StructureType 1000081002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = StructureType 1000081001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"
+pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = StructureType 1000081000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = StructureType 1000080000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR"
+pattern STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = StructureType 1000079001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR"
+pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = StructureType 1000079000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR"
+pattern STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = StructureType 1000078003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR"
+pattern STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = StructureType 1000078002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"
+pattern STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = StructureType 1000078001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"
+pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = StructureType 1000078000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR"
+pattern STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = StructureType 1000075000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR"
+pattern STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = StructureType 1000074002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = StructureType 1000074001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR"
+pattern STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = StructureType 1000074000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR"
+pattern STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = StructureType 1000073003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = StructureType 1000073002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR"
+pattern STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = StructureType 1000073001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR"
+pattern STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = StructureType 1000073000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = StructureType 1000068002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = StructureType 1000068001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = StructureType 1000068000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = StructureType 1000067001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT"
+pattern STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = StructureType 1000067000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN"
+pattern STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = StructureType 1000062000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"
+pattern STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = StructureType 1000061000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = StructureType 1000060012
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR"
+pattern STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = StructureType 1000060011
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR"
+pattern STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = StructureType 1000060010
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"
+pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = StructureType 1000060009
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = StructureType 1000060008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"
+pattern STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = StructureType 1000060007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"
+pattern STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = StructureType 1000058000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"
+pattern STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = StructureType 1000057001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"
+pattern STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = StructureType 1000057000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV"
+pattern STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = StructureType 1000056001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = StructureType 1000056000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = StructureType 1000050000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP"
+pattern STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = StructureType 1000049000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD"
+pattern STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = StructureType 1000041000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX"
+pattern STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = StructureType 1000030001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX"
+pattern STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = StructureType 1000030000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX"
+pattern STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX = StructureType 1000029004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX"
+pattern STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = StructureType 1000029002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"
+pattern STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = StructureType 1000029001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"
+pattern STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = StructureType 1000029000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = StructureType 1000028002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = StructureType 1000028001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = StructureType 1000028000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV"
+pattern STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = StructureType 1000026002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = StructureType 1000026001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = StructureType 1000026000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT"
+pattern STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = StructureType 1000022002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT"
+pattern STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = StructureType 1000022001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT"
+pattern STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = StructureType 1000022000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"
+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = StructureType 1000018000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = StructureType 1000011000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = StructureType 1000009000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = StructureType 1000008000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = StructureType 1000006000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = StructureType 1000005000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = StructureType 1000004000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR"
+pattern STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = StructureType 1000003000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = StructureType 1000002001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = StructureType 1000002000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"
+pattern STRUCTURE_TYPE_PRESENT_INFO_KHR = StructureType 1000001001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = StructureType 1000001000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO = StructureType 1000298010
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FAULT_CALLBACK_INFO"
+pattern STRUCTURE_TYPE_FAULT_CALLBACK_INFO = StructureType 1000298008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FAULT_DATA"
+pattern STRUCTURE_TYPE_FAULT_DATA = StructureType 1000298007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_POOL_SIZE"
+pattern STRUCTURE_TYPE_PIPELINE_POOL_SIZE = StructureType 1000298005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION"
+pattern STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION = StructureType 1000298004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO"
+pattern STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO = StructureType 1000298003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO"
+pattern STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO = StructureType 1000298002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES = StructureType 1000298001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES = StructureType 1000298000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS"
+pattern STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = StructureType 1000413003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS"
+pattern STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = StructureType 1000413002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = StructureType 1000413001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = StructureType 1000413000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3"
+pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = StructureType 1000360000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = StructureType 1000281001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = StructureType 1000280001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = StructureType 1000280000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO"
+pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = StructureType 1000044004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = StructureType 1000044003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = StructureType 1000044002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO"
+pattern STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = StructureType 1000044001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_INFO"
+pattern STRUCTURE_TYPE_RENDERING_INFO = StructureType 1000044000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = StructureType 1000066000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO"
+pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = StructureType 1000138003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK"
+pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = StructureType 1000138002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = StructureType 1000138001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = StructureType 1000138000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = StructureType 1000225002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = StructureType 1000225001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = StructureType 1000225000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2"
+pattern STRUCTURE_TYPE_IMAGE_RESOLVE_2 = StructureType 1000337010
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2"
+pattern STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = StructureType 1000337009
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_BLIT_2"
+pattern STRUCTURE_TYPE_IMAGE_BLIT_2 = StructureType 1000337008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COPY_2"
+pattern STRUCTURE_TYPE_IMAGE_COPY_2 = StructureType 1000337007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COPY_2"
+pattern STRUCTURE_TYPE_BUFFER_COPY_2 = StructureType 1000337006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2"
+pattern STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = StructureType 1000337005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2"
+pattern STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = StructureType 1000337004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2"
+pattern STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = StructureType 1000337003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2"
+pattern STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = StructureType 1000337002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2"
+pattern STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = StructureType 1000337001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2"
+pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = StructureType 1000337000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = StructureType 1000335000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = StructureType 1000325000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = StructureType 1000314007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO"
+pattern STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = StructureType 1000314006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO"
+pattern STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = StructureType 1000314005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBMIT_INFO_2"
+pattern STRUCTURE_TYPE_SUBMIT_INFO_2 = StructureType 1000314004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEPENDENCY_INFO"
+pattern STRUCTURE_TYPE_DEPENDENCY_INFO = StructureType 1000314003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2"
+pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = StructureType 1000314002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2"
+pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = StructureType 1000314001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2"
+pattern STRUCTURE_TYPE_MEMORY_BARRIER_2 = StructureType 1000314000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = StructureType 1000297000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO"
+pattern STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = StructureType 1000295002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO"
+pattern STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = StructureType 1000295001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = StructureType 1000295000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = StructureType 1000276000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = StructureType 1000245000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = StructureType 1000215000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = StructureType 1000192000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = StructureType 54
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = StructureType 53
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO"
+pattern STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = StructureType 1000257004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO"
+pattern STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = StructureType 1000257003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO"
+pattern STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = StructureType 1000257002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO"
+pattern STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = StructureType 1000244001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = StructureType 1000257000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO"
+pattern STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = StructureType 1000207005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO"
+pattern STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = StructureType 1000207004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO"
+pattern STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = StructureType 1000207003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO"
+pattern STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = StructureType 1000207002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = StructureType 1000207001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = StructureType 1000207000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = StructureType 1000261000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT"
+pattern STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = StructureType 1000241002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT"
+pattern STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = StructureType 1000241001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = StructureType 1000241000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = StructureType 1000175000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = StructureType 1000253000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO"
+pattern STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = StructureType 1000108003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO"
+pattern STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = StructureType 1000108002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO"
+pattern STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = StructureType 1000108001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = StructureType 1000108000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = StructureType 1000211000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO"
+pattern STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = StructureType 1000130001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = StructureType 1000130000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO"
+pattern STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = StructureType 1000246000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = StructureType 1000221000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE"
+pattern STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = StructureType 1000199001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = StructureType 1000199000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT"
+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = StructureType 1000161004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO"
+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = StructureType 1000161003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = StructureType 1000161002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = StructureType 1000161001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO"
+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = StructureType 1000161000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = StructureType 1000197000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = StructureType 1000082000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = StructureType 1000180000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = StructureType 1000196000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = StructureType 1000177000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_END_INFO"
+pattern STRUCTURE_TYPE_SUBPASS_END_INFO = StructureType 1000109006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO"
+pattern STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = StructureType 1000109005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2"
+pattern STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = StructureType 1000109004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2"
+pattern STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = StructureType 1000109003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2"
+pattern STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = StructureType 1000109002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2"
+pattern STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = StructureType 1000109001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2"
+pattern STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = StructureType 1000109000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO"
+pattern STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = StructureType 1000147000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = StructureType 52
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = StructureType 51
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = StructureType 50
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = StructureType 49
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = StructureType 1000063000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT"
+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = StructureType 1000168001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = StructureType 1000168000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES"
+pattern STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = StructureType 1000076001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = StructureType 1000076000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO"
+pattern STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = StructureType 1000077000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO"
+pattern STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = StructureType 1000113000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES"
+pattern STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = StructureType 1000112001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = StructureType 1000112000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO"
+pattern STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = StructureType 1000072002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO"
+pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = StructureType 1000072001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO"
+pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = StructureType 1000072000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = StructureType 1000071004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES"
+pattern STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = StructureType 1000071003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = StructureType 1000071002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES"
+pattern STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = StructureType 1000071001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = StructureType 1000071000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO"
+pattern STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = StructureType 1000085000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"
+pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = StructureType 1000156005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = StructureType 1000156004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO"
+pattern STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = StructureType 1000156003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO"
+pattern STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = StructureType 1000156002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO"
+pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = StructureType 1000156001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO"
+pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = StructureType 1000156000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2"
+pattern STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = StructureType 1000145003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = StructureType 1000145002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = StructureType 1000145001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO"
+pattern STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = StructureType 1000145000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = StructureType 1000120000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = StructureType 1000053002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = StructureType 1000053001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO"
+pattern STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = StructureType 1000053000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"
+pattern STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = StructureType 1000117003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO"
+pattern STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = StructureType 1000117002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO"
+pattern STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = StructureType 1000117001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = StructureType 1000117000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = StructureType 1000059008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2"
+pattern STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = StructureType 1000059007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = StructureType 1000059006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2"
+pattern STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = StructureType 1000059005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = StructureType 1000059004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2"
+pattern STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = StructureType 1000059003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2"
+pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = StructureType 1000059002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = StructureType 1000059001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = StructureType 1000059000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"
+pattern STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = StructureType 1000146004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2"
+pattern STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = StructureType 1000146003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2"
+pattern STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = StructureType 1000146002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2"
+pattern STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = StructureType 1000146001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2"
+pattern STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = StructureType 1000146000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO"
+pattern STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = StructureType 1000070001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = StructureType 1000070000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO"
+pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = StructureType 1000060014
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO"
+pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = StructureType 1000060013
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO"
+pattern STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = StructureType 1000060006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO"
+pattern STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = StructureType 1000060005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO"
+pattern STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = StructureType 1000060004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO"
+pattern STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = StructureType 1000060003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO"
+pattern STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = StructureType 1000060000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO"
+pattern STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = StructureType 1000127001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS"
+pattern STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = StructureType 1000127000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = StructureType 1000083000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO"
+pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = StructureType 1000157001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO"
+pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = StructureType 1000157000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = StructureType 1000094000
+
+{-# COMPLETE
+  STRUCTURE_TYPE_APPLICATION_INFO
+  , STRUCTURE_TYPE_INSTANCE_CREATE_INFO
+  , STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
+  , STRUCTURE_TYPE_DEVICE_CREATE_INFO
+  , STRUCTURE_TYPE_SUBMIT_INFO
+  , STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
+  , STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
+  , STRUCTURE_TYPE_BIND_SPARSE_INFO
+  , STRUCTURE_TYPE_FENCE_CREATE_INFO
+  , STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
+  , STRUCTURE_TYPE_EVENT_CREATE_INFO
+  , STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
+  , STRUCTURE_TYPE_BUFFER_CREATE_INFO
+  , STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
+  , STRUCTURE_TYPE_IMAGE_CREATE_INFO
+  , STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
+  , STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
+  , STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
+  , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
+  , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
+  , STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
+  , STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
+  , STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
+  , STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
+  , STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
+  , STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
+  , STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
+  , STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
+  , STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
+  , STRUCTURE_TYPE_SAMPLER_CREATE_INFO
+  , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
+  , STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
+  , STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
+  , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
+  , STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
+  , STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
+  , STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
+  , STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
+  , STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
+  , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
+  , STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
+  , STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
+  , STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
+  , STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
+  , STRUCTURE_TYPE_MEMORY_BARRIER
+  , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
+  , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV
+  , STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV
+  , STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI
+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT
+  , STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA
+  , STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT
+  , STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT
+  , STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT
+  , STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT
+  , STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT
+  , STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT
+  , STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT
+  , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT
+  , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT
+  , STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV
+  , STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV
+  , STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
+  , STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT
+  , STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT
+  , STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR
+  , STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR
+  , STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR
+  , STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR
+  , STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR
+  , STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR
+  , 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_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
+  , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR
+  , 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_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR
+  , 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_LAYER_SETTINGS_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT
+  , 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
+  , STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC
+  , STRUCTURE_TYPE_TILE_PROPERTIES_QCOM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM
+  , STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
+  , STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR
+  , STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR
+  , STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR
+  , STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR
+  , STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR
+  , STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
+  , STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT
+  , 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_ANTI_LAG_PRESENTATION_INFO_AMD
+  , STRUCTURE_TYPE_ANTI_LAG_DATA_AMD
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD
+  , 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
+  , STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV
+  , STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV
+  , STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV
+  , STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
+  , STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT
+  , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT
+  , STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG
+  , STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG
+  , STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT
+  , 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_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR
+  , 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
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV
+  , STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM
+  , STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM
+  , STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM
+  , STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT
+  , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE
+  , STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE
+  , STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM
+  , STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
+  , STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT
+  , STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT
+  , STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT
+  , STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT
+  , STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT
+  , STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT
+  , STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT
+  , STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
+  , STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT
+  , STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
+  , STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
+  , 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
+  , STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI
+  , STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI
+  , STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA
+  , STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA
+  , STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA
+  , STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA
+  , STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA
+  , STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA
+  , STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA
+  , STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA
+  , STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA
+  , STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA
+  , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA
+  , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA
+  , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA
+  , STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA
+  , STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT
+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT
+  , STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
+  , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT
+  , STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT
+  , STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT
+  , 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_COMPRESSION_CONTROL_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
+  , STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV
+  , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD
+  , STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+  , STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
+  , STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT
+  , STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+  , STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+  , STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+  , STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+  , STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT
+  , STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
+  , STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT
+  , STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT
+  , STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT
+  , STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT
+  , STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT
+  , STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT
+  , STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT
+  , STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT
+  , STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT
+  , STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT
+  , STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT
+  , STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV
+  , STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV
+  , STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV
+  , STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
+  , STRUCTURE_TYPE_PRESENT_ID_KHR
+  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV
+  , STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV
+  , STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
+  , STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
+  , 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
+  , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV
+  , STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV
+  , STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV
+  , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV
+  , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV
+  , STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV
+  , STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV
+  , STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
+  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT
+  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT
+  , STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT
+  , STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT
+  , STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
+  , STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_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
+  , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PIPELINE_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
+  , STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
+  , STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
+  , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
+  , STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
+  , STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
+  , STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
+  , STRUCTURE_TYPE_VALIDATION_FEATURES_EXT
+  , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV
+  , STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
+  , STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
+  , STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR
+  , STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
+  , STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
+  , STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT
+  , STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
+  , STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA
+  , STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
+  , STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
+  , STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
+  , STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
+  , STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
+  , STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
+  , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL
+  , STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
+  , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
+  , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
+  , STRUCTURE_TYPE_CHECKPOINT_DATA_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
+  , STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
+  , STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
+  , STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR
+  , STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
+  , STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
+  , STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT
+  , STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT
+  , STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT
+  , STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
+  , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
+  , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
+  , STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV
+  , STRUCTURE_TYPE_GEOMETRY_AABB_NV
+  , STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
+  , STRUCTURE_TYPE_GEOMETRY_NV
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
+  , STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT
+  , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
+  , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
+  , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV
+  , STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
+  , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
+  , STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
+  , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
+  , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
+  , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
+  , STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
+  , STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
+  , 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_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
+  , 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
+  , STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
+  , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
+  , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
+  , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
+  , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
+  , STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
+  , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT
+  , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT
+  , STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK
+  , STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK
+  , STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR
+  , STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR
+  , STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR
+  , STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR
+  , STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR
+  , STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR
+  , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR
+  , STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR
+  , STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR
+  , STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR
+  , STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR
+  , STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR
+  , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
+  , STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
+  , STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR
+  , STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
+  , STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
+  , STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
+  , STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG
+  , STRUCTURE_TYPE_HDR_METADATA_EXT
+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX
+  , STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
+  , STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT
+  , STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT
+  , STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT
+  , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PRESENT_REGIONS_KHR
+  , STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
+  , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
+  , STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR
+  , STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR
+  , STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR
+  , STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
+  , STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
+  , STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
+  , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR
+  , STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR
+  , STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR
+  , STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR
+  , STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR
+  , STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR
+  , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR
+  , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT
+  , STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
+  , STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT
+  , STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN
+  , STRUCTURE_TYPE_VALIDATION_FLAGS_EXT
+  , STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
+  , STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
+  , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
+  , STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
+  , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV
+  , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV
+  , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV
+  , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV
+  , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV
+  , STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP
+  , STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD
+  , STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX
+  , STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX
+  , STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX
+  , STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX
+  , STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX
+  , STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX
+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
+  , STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV
+  , STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV
+  , STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV
+  , STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT
+  , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT
+  , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT
+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD
+  , STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
+  , STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR
+  , STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_PRESENT_INFO_KHR
+  , STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO
+  , STRUCTURE_TYPE_FAULT_CALLBACK_INFO
+  , STRUCTURE_TYPE_FAULT_DATA
+  , STRUCTURE_TYPE_PIPELINE_POOL_SIZE
+  , STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION
+  , STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO
+  , STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES
+  , STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS
+  , STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES
+  , STRUCTURE_TYPE_FORMAT_PROPERTIES_3
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES
+  , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES
+  , STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO
+  , STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO
+  , STRUCTURE_TYPE_RENDERING_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES
+  , STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO
+  , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES
+  , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES
+  , STRUCTURE_TYPE_IMAGE_RESOLVE_2
+  , STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2
+  , STRUCTURE_TYPE_IMAGE_BLIT_2
+  , STRUCTURE_TYPE_IMAGE_COPY_2
+  , STRUCTURE_TYPE_BUFFER_COPY_2
+  , STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2
+  , STRUCTURE_TYPE_BLIT_IMAGE_INFO_2
+  , STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2
+  , STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2
+  , STRUCTURE_TYPE_COPY_IMAGE_INFO_2
+  , STRUCTURE_TYPE_COPY_BUFFER_INFO_2
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES
+  , STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO
+  , STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO
+  , STRUCTURE_TYPE_SUBMIT_INFO_2
+  , STRUCTURE_TYPE_DEPENDENCY_INFO
+  , STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2
+  , STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2
+  , STRUCTURE_TYPE_MEMORY_BARRIER_2
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES
+  , STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO
+  , STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES
+  , STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES
+  , STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO
+  , STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO
+  , STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO
+  , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
+  , STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO
+  , STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO
+  , STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO
+  , STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
+  , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT
+  , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
+  , STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO
+  , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO
+  , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
+  , STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
+  , STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
+  , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
+  , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
+  , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
+  , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
+  , STRUCTURE_TYPE_SUBPASS_END_INFO
+  , STRUCTURE_TYPE_SUBPASS_BEGIN_INFO
+  , STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2
+  , STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2
+  , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2
+  , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2
+  , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2
+  , STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
+  , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
+  , STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
+  , STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO
+  , STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO
+  , STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO
+  , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO
+  , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO
+  , STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
+  , STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO
+  , STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
+  , STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
+  , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
+  , STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO
+  , STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO
+  , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO
+  , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO
+  , STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
+  , STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
+  , STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO
+  , STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
+  , STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO
+  , STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
+  , STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2
+  , STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2
+  , STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2
+  , STRUCTURE_TYPE_FORMAT_PROPERTIES_2
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2
+  , STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2
+  , STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2
+  , STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2
+  , STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2
+  , STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2
+  , STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES
+  , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
+  , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
+  , STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO
+  , STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO
+  , STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO
+  , STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO
+  , STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO
+  , STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
+  , STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
+  , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
+  , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES ::
+    StructureType
+  #-}
+
+conNameStructureType :: String
+conNameStructureType = "StructureType"
+
+enumPrefixStructureType :: String
+enumPrefixStructureType = "STRUCTURE_TYPE_"
+
+showTableStructureType :: [(StructureType, String)]
+showTableStructureType =
+  [ (STRUCTURE_TYPE_APPLICATION_INFO, "APPLICATION_INFO")
+  ,
+    ( STRUCTURE_TYPE_INSTANCE_CREATE_INFO
+    , "INSTANCE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
+    , "DEVICE_QUEUE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_CREATE_INFO
+    , "DEVICE_CREATE_INFO"
+    )
+  , (STRUCTURE_TYPE_SUBMIT_INFO, "SUBMIT_INFO")
+  ,
+    ( STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
+    , "MEMORY_ALLOCATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
+    , "MAPPED_MEMORY_RANGE"
+    )
+  , (STRUCTURE_TYPE_BIND_SPARSE_INFO, "BIND_SPARSE_INFO")
+  ,
+    ( STRUCTURE_TYPE_FENCE_CREATE_INFO
+    , "FENCE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
+    , "SEMAPHORE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_EVENT_CREATE_INFO
+    , "EVENT_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
+    , "QUERY_POOL_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_BUFFER_CREATE_INFO
+    , "BUFFER_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
+    , "BUFFER_VIEW_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_CREATE_INFO
+    , "IMAGE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
+    , "IMAGE_VIEW_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
+    , "SHADER_MODULE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
+    , "PIPELINE_CACHE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
+    , "PIPELINE_SHADER_STAGE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
+    , "PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
+    , "PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
+    , "PIPELINE_TESSELLATION_STATE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
+    , "PIPELINE_VIEWPORT_STATE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
+    , "PIPELINE_RASTERIZATION_STATE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
+    , "PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
+    , "PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
+    , "PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
+    , "PIPELINE_DYNAMIC_STATE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
+    , "GRAPHICS_PIPELINE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
+    , "COMPUTE_PIPELINE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
+    , "PIPELINE_LAYOUT_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_SAMPLER_CREATE_INFO
+    , "SAMPLER_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
+    , "DESCRIPTOR_SET_LAYOUT_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
+    , "DESCRIPTOR_POOL_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
+    , "DESCRIPTOR_SET_ALLOCATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
+    , "WRITE_DESCRIPTOR_SET"
+    )
+  ,
+    ( STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
+    , "COPY_DESCRIPTOR_SET"
+    )
+  ,
+    ( STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
+    , "FRAMEBUFFER_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
+    , "RENDER_PASS_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
+    , "COMMAND_POOL_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
+    , "COMMAND_BUFFER_ALLOCATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
+    , "COMMAND_BUFFER_INHERITANCE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
+    , "COMMAND_BUFFER_BEGIN_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
+    , "RENDER_PASS_BEGIN_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
+    , "BUFFER_MEMORY_BARRIER"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
+    , "IMAGE_MEMORY_BARRIER"
+    )
+  , (STRUCTURE_TYPE_MEMORY_BARRIER, "MEMORY_BARRIER")
+  ,
+    ( STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
+    , "LOADER_INSTANCE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
+    , "LOADER_DEVICE_CREATE_INFO"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT
+    , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV
+    , "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV
+    , "COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV
+    , "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI
+    , "HDR_VIVID_DYNAMIC_METADATA_HUAWEI"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI
+    , "PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT
+    , "PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT
+    , "PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA
+    , "IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA
+    , "PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA
+    , "PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA"
+    )
+  ,
+    ( STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT
+    , "GENERATED_COMMANDS_SHADER_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT
+    , "GENERATED_COMMANDS_PIPELINE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT
+    , "INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT
+    , "INDIRECT_EXECUTION_SET_SHADER_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT
+    , "INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT
+    , "WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT
+    , "WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT
+    , "INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT
+    , "INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT
+    , "GENERATED_COMMANDS_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT
+    , "INDIRECT_EXECUTION_SET_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT
+    , "GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT
+    , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV
+    , "PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT
+    , "PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV
+    , "PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR
+    , "PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR
+    , "PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV
+    , "PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR
+    , "PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV
+    , "PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV
+    , "DISPLAY_MODE_STEREO_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV
+    , "DISPLAY_SURFACE_STEREO_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
+    , "PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT
+    , "BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT
+    , "SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR
+    , "PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR
+    , "PUSH_DESCRIPTOR_SET_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR
+    , "PUSH_CONSTANTS_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR
+    , "BIND_DESCRIPTOR_SETS_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR
+    , "BIND_MEMORY_STATUS_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR
+    , "PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR
+    , "PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
+    , "CALIBRATED_TIMESTAMP_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR
+    , "PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR
+    , "PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR
+    , "PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR"
+    )
+  ,
+    ( 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_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR
+    , "PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
+    , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR
+    , "PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR"
+    )
+  ,
+    ( 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_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV
+    , "PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR
+    , "PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM
+    , "MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM
+    , "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"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM
+    , "PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
+    , "PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT
+    , "LAYER_SETTINGS_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT
+    , "PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT
+    , "MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT
+    , "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"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV
+    , "PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM
+    , "PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC
+    , "AMIGO_PROFILING_SUBMIT_INFO_SEC"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC
+    , "PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC"
+    )
+  ,
+    ( STRUCTURE_TYPE_TILE_PROPERTIES_QCOM
+    , "TILE_PROPERTIES_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM
+    , "PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
+    , "PIPELINE_BINARY_HANDLES_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR
+    , "DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR
+    , "PIPELINE_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR
+    , "PIPELINE_BINARY_DATA_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR
+    , "RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR
+    , "PIPELINE_BINARY_KEY_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR
+    , "PIPELINE_BINARY_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR
+    , "PIPELINE_BINARY_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR
+    , "PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
+    , "VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT
+    , "VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT
+    , "SHADER_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT
+    , "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_ANTI_LAG_PRESENTATION_INFO_AMD
+    , "ANTI_LAG_PRESENTATION_INFO_AMD"
+    )
+  ,
+    ( STRUCTURE_TYPE_ANTI_LAG_DATA_AMD
+    , "ANTI_LAG_DATA_AMD"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD
+    , "PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD"
+    )
+  ,
+    ( 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"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT
+    , "PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV
+    , "OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV
+    , "OPTICAL_FLOW_EXECUTE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV
+    , "OPTICAL_FLOW_SESSION_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV
+    , "OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV
+    , "OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV
+    , "PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV
+    , "PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
+    , "PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT
+    , "SHADER_MODULE_IDENTIFIER_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT
+    , "PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT
+    , "PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG
+    , "DIRECT_DRIVER_LOADING_LIST_LUNARG"
+    )
+  ,
+    ( STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG
+    , "DIRECT_DRIVER_LOADING_INFO_LUNARG"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT
+    , "RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT
+    , "RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT
+    , "RENDER_PASS_CREATION_CONTROL_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT
+    , "PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT
+    , "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"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM
+    , "PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM
+    , "PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT
+    , "PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR
+    , "PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV
+    , "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"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV
+    , "PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV
+    , "PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV
+    , "PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM
+    , "SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM
+    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM
+    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM
+    , "RENDER_PASS_STRIPE_SUBMIT_INFO_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM
+    , "RENDER_PASS_STRIPE_INFO_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM
+    , "RENDER_PASS_STRIPE_BEGIN_INFO_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM
+    , "PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM
+    , "PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
+    , "PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT
+    , "PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE
+    , "DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE"
+    )
+  ,
+    ( STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE
+    , "DESCRIPTOR_SET_BINDING_REFERENCE_VALVE"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE
+    , "PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT
+    , "IMAGE_VIEW_SLICED_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT
+    , "PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM
+    , "PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM
+    , "PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM
+    , "DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR
+    , "PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM
+    , "PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
+    , "PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT
+    , "SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
+    , "PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI
+    , "PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
+    , "PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
+    , "PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV
+    , "ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV
+    , "PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV
+    , "PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT
+    , "ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT
+    , "MICROMAP_BUILD_SIZES_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT
+    , "MICROMAP_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT
+    , "PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT
+    , "COPY_MEMORY_TO_MICROMAP_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT
+    , "COPY_MICROMAP_TO_MEMORY_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT
+    , "COPY_MICROMAP_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT
+    , "MICROMAP_VERSION_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT
+    , "MICROMAP_BUILD_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT
+    , "PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT
+    , "PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
+    , "PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT
+    , "IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT
+    , "PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
+    , "PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT
+    , "PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT
+    , "PIPELINE_COLOR_WRITE_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
+    , "PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX
+    , "SCREEN_SURFACE_CREATE_INFO_QNX"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
+    , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT
+    , "MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
+    , "SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT
+    , "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"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT
+    , "PIPELINE_PROPERTIES_IDENTIFIER_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV
+    , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV
+    , "MEMORY_GET_REMOTE_ADDRESS_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI
+    , "PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI
+    , "PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI
+    , "PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI"
+    )
+  ,
+    ( STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI
+    , "SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"
+    )
+  ,
+    ( STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA
+    , "BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA
+    , "SYSMEM_COLOR_SPACE_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA
+    , "IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA
+    , "IMAGE_CONSTRAINTS_INFO_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA
+    , "BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA
+    , "BUFFER_CONSTRAINTS_INFO_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA
+    , "BUFFER_COLLECTION_PROPERTIES_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA
+    , "BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA
+    , "IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA
+    , "BUFFER_COLLECTION_CREATE_INFO_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA
+    , "SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA
+    , "IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA
+    , "MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA
+    , "MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA
+    , "IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT
+    , "PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT
+    , "PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT
+    , "PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT
+    , "PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT
+    , "DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT
+    , "PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_DRM_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
+    , "PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT
+    , "DIRECTFB_SURFACE_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT
+    , "PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT
+    , "DEVICE_FAULT_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT
+    , "DEVICE_FAULT_COUNTS_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT
+    , "PHYSICAL_DEVICE_FAULT_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
+    , "PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT
+    , "PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT
+    , "IMAGE_COMPRESSION_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT
+    , "IMAGE_COMPRESSION_CONTROL_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
+    , "PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
+    , "PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM
+    , "COPY_COMMAND_TRANSFORM_INFO_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
+    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
+    , "PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT
+    , "PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV
+    , "ACCELERATION_STRUCTURE_MOTION_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV
+    , "PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV
+    , "ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV
+    , "PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV
+    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV
+    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
+    , "PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR
+    , "PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD
+    , "PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD"
+    )
+  ,
+    ( STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT
+    , "GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT
+    , "PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+    , "ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
+    , "DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT
+    , "DESCRIPTOR_BUFFER_BINDING_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT
+    , "OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+    , "SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+    , "IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+    , "IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
+    , "BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT
+    , "DESCRIPTOR_GET_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT
+    , "DESCRIPTOR_ADDRESS_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
+    , "PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT
+    , "IMPORT_METAL_SHARED_EVENT_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT
+    , "EXPORT_METAL_SHARED_EVENT_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT
+    , "IMPORT_METAL_IO_SURFACE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT
+    , "EXPORT_METAL_IO_SURFACE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT
+    , "IMPORT_METAL_TEXTURE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT
+    , "EXPORT_METAL_TEXTURE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT
+    , "IMPORT_METAL_BUFFER_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT
+    , "EXPORT_METAL_BUFFER_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT
+    , "EXPORT_METAL_COMMAND_QUEUE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT
+    , "EXPORT_METAL_DEVICE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT
+    , "EXPORT_METAL_OBJECTS_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT
+    , "EXPORT_METAL_OBJECT_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV
+    , "QUERY_LOW_LATENCY_SUPPORT_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV
+    , "PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV
+    , "PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV
+    , "CUDA_LAUNCH_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV
+    , "CUDA_FUNCTION_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV
+    , "CUDA_MODULE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV
+    , "DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV
+    , "PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
+    , "PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR"
+    )
+  , (STRUCTURE_TYPE_PRESENT_ID_KHR, "PRESENT_ID_KHR")
+  ,
+    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV
+    , "SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV
+    , "SURFACE_CAPABILITIES_PRESENT_BARRIER_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV
+    , "PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR
+    , "PIPELINE_LIBRARY_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
+    , "PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT
+    , "SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
+    , "PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT
+    , "DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT
+    , "DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT
+    , "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"
+    )
+  ,
+    ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM
+    , "COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
+    , "PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV
+    , "COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV
+    , "PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV
+    , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV
+    , "GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV
+    , "GENERATED_COMMANDS_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV
+    , "INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV
+    , "INDIRECT_COMMANDS_LAYOUT_TOKEN_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV
+    , "GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV
+    , "GRAPHICS_SHADER_GROUP_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV
+    , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
+    , "RELEASE_SWAPCHAIN_IMAGES_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT
+    , "SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT
+    , "SWAPCHAIN_PRESENT_MODE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT
+    , "SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT
+    , "SWAPCHAIN_PRESENT_FENCE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT
+    , "PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT
+    , "SURFACE_PRESENT_MODE_COMPATIBILITY_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT
+    , "SURFACE_PRESENT_SCALING_CAPABILITIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT
+    , "SURFACE_PRESENT_MODE_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
+    , "PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT
+    , "MEMORY_MAP_PLACED_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT
+    , "PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR
+    , "MEMORY_UNMAP_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR
+    , "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"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR
+    , "PIPELINE_EXECUTABLE_STATISTIC_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR
+    , "PIPELINE_EXECUTABLE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
+    , "PIPELINE_EXECUTABLE_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_INFO_KHR
+    , "PIPELINE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
+    , "PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
+    , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
+    , "PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT
+    , "HEADLESS_SURFACE_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
+    , "SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
+    , "SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
+    , "SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT
+    , "PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
+    , "PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
+    , "PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
+    , "PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
+    , "FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
+    , "PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
+    , "PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
+    , "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
+    , "COOPERATIVE_MATRIX_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
+    , "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
+    , "PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_VALIDATION_FEATURES_EXT
+    , "VALIDATION_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT
+    , "BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
+    , "PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV
+    , "PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
+    , "SURFACE_PROTECTED_CAPABILITIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT
+    , "MEMORY_PRIORITY_ALLOCATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
+    , "PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR
+    , "PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
+    , "PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR
+    , "RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR
+    , "RENDERING_ATTACHMENT_LOCATION_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR
+    , "PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD
+    , "PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
+    , "PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
+    , "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR
+    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
+    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR
+    , "PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
+    , "FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT
+    , "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT
+    , "RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
+    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT
+    , "METAL_SURFACE_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA
+    , "IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA"
+    )
+  ,
+    ( STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
+    , "SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD"
+    )
+  ,
+    ( STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
+    , "DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
+    , "PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL"
+    )
+  ,
+    ( STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
+    , "PERFORMANCE_OVERRIDE_INFO_INTEL"
+    )
+  ,
+    ( STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
+    , "PERFORMANCE_STREAM_MARKER_INFO_INTEL"
+    )
+  ,
+    ( STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
+    , "PERFORMANCE_MARKER_INFO_INTEL"
+    )
+  ,
+    ( STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
+    , "INITIALIZE_PERFORMANCE_API_INFO_INTEL"
+    )
+  ,
+    ( STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
+    , "QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL
+    , "PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL"
+    )
+  ,
+    ( STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
+    , "CHECKPOINT_DATA_2_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
+    , "QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
+    , "QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_CHECKPOINT_DATA_NV
+    , "CHECKPOINT_DATA_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
+    , "PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV
+    , "PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV
+    , "PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV
+    , "PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
+    , "PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
+    , "PRESENT_FRAME_TOKEN_GGP"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
+    , "DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD"
+    )
+  ,
+    ( STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
+    , "QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR
+    , "PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR
+    , "DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
+    , "PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
+    , "PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
+    , "PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT
+    , "MEMORY_HOST_POINTER_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT
+    , "IMPORT_MEMORY_HOST_POINTER_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT
+    , "FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT
+    , "PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV
+    , "PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV
+    , "PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
+    , "ACCELERATION_STRUCTURE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
+    , "RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
+    , "PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
+    , "ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
+    , "WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV
+    , "BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV"
+    )
+  , (STRUCTURE_TYPE_GEOMETRY_AABB_NV, "GEOMETRY_AABB_NV")
+  ,
+    ( STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
+    , "GEOMETRY_TRIANGLES_NV"
+    )
+  , (STRUCTURE_TYPE_GEOMETRY_NV, "GEOMETRY_NV")
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
+    , "ACCELERATION_STRUCTURE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
+    , "RAY_TRACING_PIPELINE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
+    , "PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
+    , "PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
+    , "PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
+    , "PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
+    , "PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
+    , "SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
+    , "VALIDATION_CACHE_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT
+    , "DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
+    , "IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
+    , "IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
+    , "IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
+    , "PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT
+    , "DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV
+    , "PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV
+    , "PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
+    , "PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
+    , "PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
+    , "RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR
+    , "RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR
+    , "RAY_TRACING_PIPELINE_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
+    , "PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
+    , "ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR
+    , "ACCELERATION_STRUCTURE_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
+    , "PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
+    , "COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
+    , "COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR
+    , "COPY_ACCELERATION_STRUCTURE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR
+    , "ACCELERATION_STRUCTURE_VERSION_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR
+    , "ACCELERATION_STRUCTURE_GEOMETRY_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
+    , "ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
+    , "ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
+    , "ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
+    , "ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
+    , "ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
+    , "WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV
+    , "PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
+    , "PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
+    , "PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT
+    , "MULTISAMPLE_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT
+    , "PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT
+    , "RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
+    , "SAMPLE_LOCATIONS_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
+    , "ATTACHMENT_SAMPLE_COUNT_INFO_AMD"
+    )
+  ,
+    ( 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
+    , "ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID
+    , "EXTERNAL_FORMAT_ANDROID"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
+    , "MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
+    , "IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"
+    )
+  ,
+    ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
+    , "ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"
+    )
+  ,
+    ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
+    , "ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"
+    )
+  ,
+    ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
+    , "ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT
+    , "DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
+    , "DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
+    , "DEBUG_UTILS_LABEL_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT
+    , "DEBUG_UTILS_OBJECT_TAG_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT
+    , "DEBUG_UTILS_OBJECT_NAME_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK
+    , "MACOS_SURFACE_CREATE_INFO_MVK"
+    )
+  ,
+    ( STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK
+    , "IOS_SURFACE_CREATE_INFO_MVK"
+    )
+  ,
+    ( STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR
+    , "DISPLAY_PLANE_CAPABILITIES_2_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR
+    , "DISPLAY_PLANE_INFO_2_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR
+    , "DISPLAY_MODE_PROPERTIES_2_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR
+    , "DISPLAY_PLANE_PROPERTIES_2_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR
+    , "DISPLAY_PROPERTIES_2_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR
+    , "SURFACE_FORMAT_2_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
+    , "SURFACE_CAPABILITIES_2_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR
+    , "PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR
+    , "PERFORMANCE_QUERY_RESERVATION_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR
+    , "PERFORMANCE_COUNTER_DESCRIPTION_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR
+    , "PERFORMANCE_COUNTER_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR
+    , "ACQUIRE_PROFILING_LOCK_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR
+    , "PERFORMANCE_QUERY_SUBMIT_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR
+    , "QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
+    , "PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
+    , "FENCE_GET_FD_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR
+    , "IMPORT_FENCE_FD_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
+    , "FENCE_GET_WIN32_HANDLE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
+    , "EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
+    , "IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
+    , "SHARED_PRESENT_SURFACE_CAPABILITIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG
+    , "PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG"
+    )
+  , (STRUCTURE_TYPE_HDR_METADATA_EXT, "HDR_METADATA_EXT")
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT
+    , "PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
+    , "PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
+    , "PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT
+    , "PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV
+    , "PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX
+    , "MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX
+    , "PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"
+    )
+  ,
+    ( STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
+    , "PRESENT_TIMES_INFO_GOOGLE"
+    )
+  ,
+    ( STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT
+    , "SWAPCHAIN_COUNTER_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT
+    , "DISPLAY_EVENT_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT
+    , "DEVICE_EVENT_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT
+    , "DISPLAY_POWER_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
+    , "SURFACE_CAPABILITIES_2_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
+    , "PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PRESENT_REGIONS_KHR
+    , "PRESENT_REGIONS_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
+    , "CONDITIONAL_RENDERING_BEGIN_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
+    , "PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
+    , "COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR
+    , "SEMAPHORE_GET_FD_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR
+    , "IMPORT_SEMAPHORE_FD_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR
+    , "SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
+    , "D3D12_FENCE_SUBMIT_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
+    , "EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
+    , "IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR
+    , "WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR
+    , "MEMORY_GET_FD_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR
+    , "MEMORY_FD_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR
+    , "IMPORT_MEMORY_FD_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR
+    , "MEMORY_GET_WIN32_HANDLE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR
+    , "MEMORY_WIN32_HANDLE_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR
+    , "EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR
+    , "IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT
+    , "PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT
+    , "PIPELINE_ROBUSTNESS_CREATE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
+    , "PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT
+    , "IMAGE_VIEW_ASTC_DECODE_MODE_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN
+    , "VI_SURFACE_CREATE_INFO_NN"
+    )
+  ,
+    ( STRUCTURE_TYPE_VALIDATION_FLAGS_EXT
+    , "VALIDATION_FLAGS_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
+    , "DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
+    , "DEVICE_GROUP_PRESENT_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
+    , "ACQUIRE_NEXT_IMAGE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
+    , "BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
+    , "IMAGE_SWAPCHAIN_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
+    , "DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV
+    , "WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV
+    , "EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV
+    , "IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV
+    , "EXPORT_MEMORY_ALLOCATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV
+    , "EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV
+    , "PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP
+    , "STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP"
+    )
+  ,
+    ( STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD
+    , "TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX
+    , "IMAGE_VIEW_ADDRESS_PROPERTIES_NVX"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX
+    , "IMAGE_VIEW_HANDLE_INFO_NVX"
+    )
+  ,
+    ( STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX
+    , "CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX"
     )
   ,
     ( STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX
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,7 +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
+                                                            , SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR
                                                             , ..
                                                             )) where
 
@@ -41,16 +41,16 @@
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdEndRenderPass'.
 pattern SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = SubpassContents 1
 
--- | 'SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT' specifies
+-- | 'SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR' 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
+pattern SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = SubpassContents 1000451000
 
 {-# COMPLETE
   SUBPASS_CONTENTS_INLINE
   , SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
-  , SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT ::
+  , SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR ::
     SubpassContents
   #-}
 
@@ -68,8 +68,8 @@
     , "SECONDARY_COMMAND_BUFFERS"
     )
   ,
-    ( SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT
-    , "INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT"
+    ( SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR
+    , "INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR"
     )
   ]
 
diff --git a/src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs b/src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs
--- a/src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs
@@ -30,8 +30,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Shader resolve operations allow for custom resolve operations, but
 -- overdrawing pixels /may/ have a performance and\/or power cost.
 -- Furthermore, since the content of any depth stencil attachment or color
diff --git a/src/Vulkan/Core10/Enums/SystemAllocationScope.hs b/src/Vulkan/Core10/Enums/SystemAllocationScope.hs
--- a/src/Vulkan/Core10/Enums/SystemAllocationScope.hs
+++ b/src/Vulkan/Core10/Enums/SystemAllocationScope.hs
@@ -86,6 +86,10 @@
 --
 -- = See Also
 --
+-- 'Vulkan.Core10.FuncPointers.PFN_vkAllocationFunction',
+-- 'Vulkan.Core10.FuncPointers.PFN_vkInternalAllocationNotification',
+-- 'Vulkan.Core10.FuncPointers.PFN_vkInternalFreeNotification',
+-- 'Vulkan.Core10.FuncPointers.PFN_vkReallocationFunction',
 -- <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'
 newtype SystemAllocationScope = SystemAllocationScope Int32
diff --git a/src/Vulkan/Core10/Enums/VendorId.hs b/src/Vulkan/Core10/Enums/VendorId.hs
--- a/src/Vulkan/Core10/Enums/VendorId.hs
+++ b/src/Vulkan/Core10/Enums/VendorId.hs
@@ -1,6 +1,7 @@
 {-# language CPP #-}
 -- No documentation found for Chapter "VendorId"
-module Vulkan.Core10.Enums.VendorId  (VendorId( VENDOR_ID_VIV
+module Vulkan.Core10.Enums.VendorId  (VendorId( VENDOR_ID_KHRONOS
+                                              , VENDOR_ID_VIV
                                               , VENDOR_ID_VSI
                                               , VENDOR_ID_KAZAN
                                               , VENDOR_ID_CODEPLAY
@@ -23,8 +24,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Khronos vendor IDs may be allocated by vendors at any time. Only the
 -- latest canonical versions of this Specification, of the corresponding
 -- @vk.xml@ API Registry, and of the corresponding @vulkan_core.h@ header
@@ -42,6 +41,9 @@
 
 -- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error
 
+-- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_KHRONOS"
+pattern VENDOR_ID_KHRONOS = VendorId 65536
+
 -- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_VIV"
 pattern VENDOR_ID_VIV = VendorId 65537
 
@@ -64,7 +66,8 @@
 pattern VENDOR_ID_MOBILEYE = VendorId 65543
 
 {-# COMPLETE
-  VENDOR_ID_VIV
+  VENDOR_ID_KHRONOS
+  , VENDOR_ID_VIV
   , VENDOR_ID_VSI
   , VENDOR_ID_KAZAN
   , VENDOR_ID_CODEPLAY
@@ -82,7 +85,8 @@
 
 showTableVendorId :: [(VendorId, String)]
 showTableVendorId =
-  [ (VENDOR_ID_VIV, "VIV")
+  [ (VENDOR_ID_KHRONOS, "KHRONOS")
+  , (VENDOR_ID_VIV, "VIV")
   , (VENDOR_ID_VSI, "VSI")
   , (VENDOR_ID_KAZAN, "KAZAN")
   , (VENDOR_ID_CODEPLAY, "CODEPLAY")
diff --git a/src/Vulkan/Core10/Event.hs b/src/Vulkan/Core10/Event.hs
--- a/src/Vulkan/Core10/Event.hs
+++ b/src/Vulkan/Core10/Event.hs
@@ -95,6 +95,12 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCreateEvent-device-09672# @device@ /must/ support at least
+--     one queue family with one of the @VK_QUEUE_VIDEO_ENCODE_BIT_KHR@,
+--     @VK_QUEUE_VIDEO_DECODE_BIT_KHR@,
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', or
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' capabilities
+--
 -- -   #VUID-vkCreateEvent-events-04468# If the @VK_KHR_portability_subset@
 --     extension is enabled, and
 --     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@events@
@@ -361,8 +367,6 @@
 --
 -- If @event@ is already in the signaled state when 'setEvent' is executed,
 -- then 'setEvent' has no effect, and no event signal operation occurs.
---
--- Note
 --
 -- If a command buffer is waiting for an event to be signaled from the
 -- host, the application must signal the event before submitting the
diff --git a/src/Vulkan/Core10/ExtensionDiscovery.hs b/src/Vulkan/Core10/ExtensionDiscovery.hs
--- a/src/Vulkan/Core10/ExtensionDiscovery.hs
+++ b/src/Vulkan/Core10/ExtensionDiscovery.hs
@@ -82,14 +82,14 @@
 --
 -- If @pProperties@ is @NULL@, then the number of extensions 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 extension 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 properties were returned.
+-- /must/ point to a variable set by the application 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 extension
+-- 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 properties were returned.
 --
 -- Because the list of available layers may change externally between calls
 -- to 'enumerateInstanceExtensionProperties', two calls may retrieve
@@ -190,6 +190,10 @@
 -- be enabled together due to behavioral differences, or any extension that
 -- cannot be enabled against the advertised version.
 --
+-- If the @VK_KHR_ray_tracing_pipeline@ extension is advertised as
+-- supported by this query, the @VK_KHR_pipeline_library@ extension /must/
+-- also be supported.
+--
 -- Implementations claiming support for the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#roadmap-2022 Roadmap 2022>
 -- profile /must/ advertise the @VK_KHR_global_priority@ extension in
@@ -227,12 +231,10 @@
 --
 -- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_push_descriptor VK_KHR_push_descriptor>
 --
--- Note
---
 -- Due to platform details on Android, 'enumerateDeviceExtensionProperties'
 -- may be called with @physicalDevice@ equal to @NULL@ during layer
--- discovery. This behaviour will only be observed by layer
--- implementations, and not the underlying Vulkan driver.
+-- discovery. This behavior will only be observed by layer implementations,
+-- and not the underlying Vulkan driver.
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core10/Fence.hs b/src/Vulkan/Core10/Fence.hs
--- a/src/Vulkan/Core10/Fence.hs
+++ b/src/Vulkan/Core10/Fence.hs
@@ -501,13 +501,11 @@
 -- time with either 'Vulkan.Core10.Enums.Result.SUCCESS' or
 -- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'.
 --
--- Note
---
 -- While we guarantee that 'waitForFences' /must/ return in finite time, no
 -- guarantees are made that it returns immediately upon device loss.
--- However, the client can reasonably expect that the delay will be on the
--- order of seconds and that calling 'waitForFences' will not result in a
--- permanently (or seemingly permanently) dead process.
+-- However, the application can reasonably expect that the delay will be on
+-- the order of seconds and that calling 'waitForFences' will not result in
+-- a permanently (or seemingly permanently) dead process.
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core10/FuncPointers.hs b/src/Vulkan/Core10/FuncPointers.hs
--- a/src/Vulkan/Core10/FuncPointers.hs
+++ b/src/Vulkan/Core10/FuncPointers.hs
@@ -31,7 +31,9 @@
 -- = 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.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Enums.InternalAllocationType.InternalAllocationType',
+-- 'Vulkan.Core10.Enums.SystemAllocationScope.SystemAllocationScope'
 type PFN_vkInternalAllocationNotification = FunPtr FN_vkInternalAllocationNotification
 
 
@@ -46,7 +48,9 @@
 -- = 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.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Enums.InternalAllocationType.InternalAllocationType',
+-- 'Vulkan.Core10.Enums.SystemAllocationScope.SystemAllocationScope'
 type PFN_vkInternalFreeNotification = FunPtr FN_vkInternalFreeNotification
 
 
@@ -85,7 +89,8 @@
 -- = 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.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Enums.SystemAllocationScope.SystemAllocationScope'
 type PFN_vkReallocationFunction = FunPtr FN_vkReallocationFunction
 
 
@@ -100,8 +105,6 @@
 -- valid pointer to memory allocation containing at least @size@ bytes, and
 -- with the pointer value being a multiple of @alignment@.
 --
--- Note
---
 -- Correct Vulkan operation /cannot/ be assumed if the application does not
 -- follow these rules.
 --
@@ -131,7 +134,8 @@
 -- = 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.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Enums.SystemAllocationScope.SystemAllocationScope'
 type PFN_vkAllocationFunction = FunPtr FN_vkAllocationFunction
 
 
@@ -156,14 +160,10 @@
 -- | PFN_vkVoidFunction - Placeholder function pointer type returned by
 -- queries
 --
--- = Parameters
---
--- This type is returned from command function pointer queries, and /must/
--- be
---
 -- = Description
 --
--- cast to an actual command function pointer before use.
+-- This type is returned from command function pointer queries, and /must/
+-- be cast to an actual command function pointer before use.
 --
 -- = See Also
 --
diff --git a/src/Vulkan/Core10/FuncPointers.hs-boot b/src/Vulkan/Core10/FuncPointers.hs-boot
--- a/src/Vulkan/Core10/FuncPointers.hs-boot
+++ b/src/Vulkan/Core10/FuncPointers.hs-boot
@@ -10,14 +10,10 @@
 -- | PFN_vkVoidFunction - Placeholder function pointer type returned by
 -- queries
 --
--- = Parameters
---
--- This type is returned from command function pointer queries, and /must/
--- be
---
 -- = Description
 --
--- cast to an actual command function pointer before use.
+-- This type is returned from command function pointer queries, and /must/
+-- be cast to an actual command function pointer before use.
 --
 -- = See Also
 --
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
@@ -202,7 +202,7 @@
 -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV',
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR',
 -- 'Rect2D', 'Vulkan.Extensions.VK_KHR_incremental_present.RectLayerKHR',
--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR',
 -- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT',
 -- 'Vulkan.Extensions.VK_QCOM_image_processing2.SamplerBlockMatchWindowCreateInfoQCOM',
 -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT',
@@ -211,8 +211,13 @@
 -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',
 -- '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#VkVideoEncodeAV1CapabilitiesKHR VkVideoEncodeAV1CapabilitiesKHR>,
 -- <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#VkVideoEncodeH265CapabilitiesKHR VkVideoEncodeH265CapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeQuantizationMapCapabilitiesKHR VkVideoEncodeQuantizationMapCapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeQuantizationMapInfoKHR VkVideoEncodeQuantizationMapInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatQuantizationMapPropertiesKHR VkVideoFormatQuantizationMapPropertiesKHR>,
 -- <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',
@@ -425,11 +430,15 @@
 -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT',
 -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',
 -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+-- 'Vulkan.Extensions.VK_NV_cooperative_matrix2.CooperativeMatrixFlexibleDimensionsPropertiesNV',
 -- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.CooperativeMatrixPropertiesKHR',
+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuModuleTexturingModeCreateInfoNVX',
 -- '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_KHR_pipeline_binary.DevicePipelineBinaryInternalCacheControlKHR',
+-- 'Vulkan.Extensions.VK_NV_display_stereo.DisplayModeStereoPropertiesNV',
 -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.DisplayNativeHdrSurfaceCapabilitiesAMD',
 -- 'Vulkan.Extensions.VK_KHR_display_swapchain.DisplayPresentInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_display.DisplayPropertiesKHR',
@@ -441,7 +450,7 @@
 -- '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',
--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX',
+-- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.MultiviewPerViewAttributesInfoNVX',
 -- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceOverrideInfoINTEL',
 -- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceValueDataINTEL',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage.PhysicalDevice16BitStorageFeatures',
@@ -451,6 +460,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_AMD_anti_lag.PhysicalDeviceAntiLagFeaturesAMD',
 -- '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',
@@ -462,9 +472,12 @@
 -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI',
 -- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',
 -- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT',
--- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',
+-- 'Vulkan.Extensions.VK_NV_command_buffer_inheritance.PhysicalDeviceCommandBufferInheritanceFeaturesNV',
+-- 'Vulkan.Extensions.VK_KHR_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesPropertiesKHR',
 -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT',
+-- 'Vulkan.Extensions.VK_NV_cooperative_matrix2.PhysicalDeviceCooperativeMatrix2FeaturesNV',
 -- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesKHR',
 -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesNV',
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectFeaturesNV',
@@ -476,6 +489,7 @@
 -- '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_control.PhysicalDeviceDepthClampControlFeaturesEXT',
 -- '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',
@@ -487,7 +501,9 @@
 -- '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_EXT_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT',
 -- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV',
 -- 'Vulkan.Extensions.VK_NV_displacement_micromap.PhysicalDeviceDisplacementMicromapFeaturesNV',
@@ -524,11 +540,13 @@
 -- '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_HUAWEI_hdr_vivid.PhysicalDeviceHdrVividFeaturesHUAWEI',
 -- '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_MESA_image_alignment_control.PhysicalDeviceImageAlignmentControlFeaturesMESA',
 -- 'Vulkan.Extensions.VK_EXT_image_compression_control.PhysicalDeviceImageCompressionControlFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_image_compression_control_swapchain.PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT',
 -- 'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2FeaturesQCOM',
@@ -542,6 +560,8 @@
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures',
 -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI',
 -- 'Vulkan.Extensions.VK_EXT_legacy_dithering.PhysicalDeviceLegacyDitheringFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_legacy_vertex_attributes.PhysicalDeviceLegacyVertexAttributesFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_legacy_vertex_attributes.PhysicalDeviceLegacyVertexAttributesPropertiesEXT',
 -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits',
 -- 'Vulkan.Extensions.VK_KHR_line_rasterization.PhysicalDeviceLineRasterizationFeaturesKHR',
 -- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV',
@@ -550,6 +570,9 @@
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5PropertiesKHR',
 -- 'Vulkan.Extensions.VK_KHR_maintenance6.PhysicalDeviceMaintenance6FeaturesKHR',
 -- 'Vulkan.Extensions.VK_KHR_maintenance6.PhysicalDeviceMaintenance6PropertiesKHR',
+-- 'Vulkan.Extensions.VK_KHR_maintenance7.PhysicalDeviceMaintenance7FeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_maintenance7.PhysicalDeviceMaintenance7PropertiesKHR',
+-- 'Vulkan.Extensions.VK_EXT_map_memory_placed.PhysicalDeviceMapMemoryPlacedFeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderFeaturesEXT',
@@ -571,6 +594,8 @@
 -- 'Vulkan.Extensions.VK_NV_per_stage_descriptor_set.PhysicalDevicePerStageDescriptorSetFeaturesNV',
 -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR',
 -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.PhysicalDevicePipelineBinaryFeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.PhysicalDevicePipelineBinaryPropertiesKHR',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures',
 -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',
 -- 'Vulkan.Extensions.VK_EXT_pipeline_library_group_handles.PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT',
@@ -580,6 +605,7 @@
 -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',
 -- 'Vulkan.Extensions.VK_NV_present_barrier.PhysicalDevicePresentBarrierFeaturesNV',
 -- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR',
+-- 'Vulkan.Extensions.VK_EXT_present_mode_fifo_latest_ready.PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT',
 -- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR',
 -- 'Vulkan.Extensions.VK_EXT_primitive_topology_list_restart.PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_primitives_generated_query.PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT',
@@ -590,12 +616,14 @@
 -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT',
 -- 'Vulkan.Extensions.VK_EXT_rgba10x6_formats.PhysicalDeviceRGBA10X6FormatsFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access.PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT',
+-- 'Vulkan.Extensions.VK_NV_raw_access_chains.PhysicalDeviceRawAccessChainsFeaturesNV',
 -- 'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder.PhysicalDeviceRayTracingInvocationReorderFeaturesNV',
 -- '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_ray_tracing_validation.PhysicalDeviceRayTracingValidationFeaturesNV',
 -- 'Vulkan.Extensions.VK_IMG_relaxed_line_rasterization.PhysicalDeviceRelaxedLineRasterizationFeaturesIMG',
 -- 'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedFeaturesARM',
 -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',
@@ -606,6 +634,7 @@
 -- 'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures',
 -- 'Vulkan.Extensions.VK_ARM_scheduling_controls.PhysicalDeviceSchedulingControlsFeaturesARM',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',
+-- 'Vulkan.Extensions.VK_NV_shader_atomic_float16_vector.PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_shader_atomic_float2.PhysicalDeviceShaderAtomicFloat2FeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features',
@@ -627,6 +656,8 @@
 -- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_shader_object.PhysicalDeviceShaderObjectFeaturesEXT',
 -- 'Vulkan.Extensions.VK_KHR_shader_quad_control.PhysicalDeviceShaderQuadControlFeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_shader_relaxed_extended_instruction.PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR',
+-- 'Vulkan.Extensions.VK_EXT_shader_replicated_composites.PhysicalDeviceShaderReplicatedCompositesFeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures',
 -- 'Vulkan.Extensions.VK_KHR_shader_subgroup_rotate.PhysicalDeviceShaderSubgroupRotateFeaturesKHR',
@@ -653,7 +684,10 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures',
 -- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesKHR',
 -- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR',
+-- 'Vulkan.Extensions.VK_EXT_vertex_attribute_robustness.PhysicalDeviceVertexAttributeRobustnessFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoEncodeAV1FeaturesKHR VkPhysicalDeviceVideoEncodeAV1FeaturesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoMaintenance1FeaturesKHR VkPhysicalDeviceVideoMaintenance1FeaturesKHR>,
 -- 'Vulkan.Core12.PhysicalDeviceVulkan11Features',
 -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties',
@@ -703,6 +737,11 @@
 -- '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#VkVideoDecodeAV1ProfileInfoKHR VkVideoDecodeAV1ProfileInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1CapabilitiesKHR VkVideoEncodeAV1CapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1GopRemainingFrameInfoKHR VkVideoEncodeAV1GopRemainingFrameInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1PictureInfoKHR VkVideoEncodeAV1PictureInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1RateControlLayerInfoKHR VkVideoEncodeAV1RateControlLayerInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1SessionCreateInfoKHR VkVideoEncodeAV1SessionCreateInfoKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesKHR VkVideoEncodeH264CapabilitiesKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264GopRemainingFrameInfoKHR VkVideoEncodeH264GopRemainingFrameInfoKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264PictureInfoKHR VkVideoEncodeH264PictureInfoKHR>,
@@ -719,6 +758,7 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersGetInfoKHR VkVideoEncodeH265SessionParametersGetInfoKHR>,
 -- <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_EXT_device_generated_commands.cmdExecuteGeneratedCommandsEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT',
@@ -835,8 +875,6 @@
 -- Only the low-order 31 bits (bit positions zero through 30) are available
 -- for use as flag bits.
 --
--- Note
---
 -- This restriction is due to poorly defined behavior by C compilers given
 -- a C enumerant value of @0x80000000@. In some cases adding this enumerant
 -- value may increase the size of the underlying @Vk*FlagBits@ type,
@@ -845,8 +883,192 @@
 -- = 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_KHR_acceleration_structure.AccelerationStructureCreateFlagsKHR',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInfoFlagsNV',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInstanceFlagsNV',
+-- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlags',
+-- 'Vulkan.Extensions.VK_KHR_performance_query.AcquireProfilingLockFlagsKHR',
+-- 'Vulkan.Extensions.VK_KHR_android_surface.AndroidSurfaceCreateFlagsKHR',
+-- 'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.AttachmentDescriptionFlags',
+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BufferCreateFlags',
+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlags',
+-- 'Vulkan.Core10.Enums.BufferViewCreateFlags.BufferViewCreateFlags',
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.BuildAccelerationStructureFlagsKHR',
+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.BuildMicromapFlagsEXT',
 -- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlags',
--- 'Flags64'
+-- 'Vulkan.Core10.Enums.CommandBufferResetFlagBits.CommandBufferResetFlags',
+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.CommandBufferUsageFlags',
+-- 'Vulkan.Core10.Enums.CommandPoolCreateFlagBits.CommandPoolCreateFlags',
+-- 'Vulkan.Core10.Enums.CommandPoolResetFlagBits.CommandPoolResetFlags',
+-- 'Vulkan.Core11.Enums.CommandPoolTrimFlags.CommandPoolTrimFlags',
+-- 'Vulkan.Extensions.VK_KHR_surface.CompositeAlphaFlagsKHR',
+-- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingFlagsEXT',
+-- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlags',
+-- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportFlagsEXT',
+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessageSeverityFlagsEXT',
+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessageTypeFlagsEXT',
+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCallbackDataFlagsEXT',
+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateFlagsEXT',
+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags',
+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DescriptorBindingFlags',
+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DescriptorPoolCreateFlags',
+-- 'Vulkan.Core10.Enums.DescriptorPoolResetFlags.DescriptorPoolResetFlags',
+-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DescriptorSetLayoutCreateFlags',
+-- 'Vulkan.Core11.Enums.DescriptorUpdateTemplateCreateFlags.DescriptorUpdateTemplateCreateFlags',
+-- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingFlagsEXT',
+-- 'Vulkan.Core10.Enums.DeviceCreateFlags.DeviceCreateFlags',
+-- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.DeviceDiagnosticsConfigFlagsNV',
+-- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupPresentModeFlagsKHR',
+-- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceMemoryReportFlagsEXT',
+-- 'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DeviceQueueCreateFlags',
+-- 'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingFlagsLUNARG',
+-- 'Vulkan.Extensions.VK_EXT_directfb_surface.DirectFBSurfaceCreateFlagsEXT',
+-- 'Vulkan.Extensions.VK_KHR_display.DisplayModeCreateFlagsKHR',
+-- 'Vulkan.Extensions.VK_KHR_display.DisplayPlaneAlphaFlagsKHR',
+-- 'Vulkan.Extensions.VK_KHR_display.DisplaySurfaceCreateFlagsKHR',
+-- 'Vulkan.Core10.Enums.EventCreateFlagBits.EventCreateFlags',
+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectTypeFlagsEXT',
+-- 'Vulkan.Core11.Enums.ExternalFenceFeatureFlagBits.ExternalFenceFeatureFlags',
+-- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.ExternalFenceHandleTypeFlags',
+-- 'Vulkan.Core11.Enums.ExternalMemoryFeatureFlagBits.ExternalMemoryFeatureFlags',
+-- 'Vulkan.Extensions.VK_NV_external_memory_capabilities.ExternalMemoryFeatureFlagsNV',
+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlags',
+-- 'Vulkan.Extensions.VK_NV_external_memory_capabilities.ExternalMemoryHandleTypeFlagsNV',
+-- 'Vulkan.Core11.Enums.ExternalSemaphoreFeatureFlagBits.ExternalSemaphoreFeatureFlags',
+-- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlags',
+-- 'Vulkan.Core10.Enums.FenceCreateFlagBits.FenceCreateFlags',
+-- 'Vulkan.Core11.Enums.FenceImportFlagBits.FenceImportFlags', 'Flags64',
+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlags',
+-- 'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryFlagsEXT',
+-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FramebufferCreateFlags',
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.GeometryFlagsKHR',
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.GeometryInstanceFlagsKHR',
+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryFlagsEXT',
+-- 'Vulkan.Extensions.VK_EXT_headless_surface.HeadlessSurfaceCreateFlagsEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageCopyFlagsEXT',
+-- 'Vulkan.Extensions.VK_MVK_ios_surface.IOSSurfaceCreateFlagsMVK',
+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags',
+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionFixedRateFlagsEXT',
+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionFlagsEXT',
+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageConstraintsInfoFlagsFUCHSIA',
+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlags',
+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageFormatConstraintsFlagsFUCHSIA',
+-- 'Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface.ImagePipeSurfaceCreateFlagsFUCHSIA',
+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlags',
+-- 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.ImageViewCreateFlags',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectCommandsInputModeFlagsEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectCommandsLayoutUsageFlagsEXT',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutUsageFlagsNV',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectStateFlagsNV',
+-- 'Vulkan.Core10.Enums.InstanceCreateFlagBits.InstanceCreateFlags',
+-- 'Vulkan.Extensions.VK_MVK_macos_surface.MacOSSurfaceCreateFlagsMVK',
+-- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MemoryAllocateFlags',
+-- 'Vulkan.Core10.Enums.MemoryHeapFlagBits.MemoryHeapFlags',
+-- 'Vulkan.Core10.Enums.MemoryMapFlagBits.MemoryMapFlags',
+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MemoryPropertyFlags',
+-- 'Vulkan.Extensions.VK_KHR_map_memory2.MemoryUnmapFlagsKHR',
+-- 'Vulkan.Extensions.VK_EXT_metal_surface.MetalSurfaceCreateFlagsEXT',
+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateFlagsEXT',
+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowExecuteFlagsNV',
+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowGridSizeFlagsNV',
+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowSessionCreateFlagsNV',
+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowUsageFlagsNV',
+-- 'Vulkan.Core11.Enums.PeerMemoryFeatureFlagBits.PeerMemoryFeatureFlags',
+-- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterDescriptionFlagsKHR',
+-- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PipelineCacheCreateFlags',
+-- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlags',
+-- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlFlagsAMD',
+-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateFlagsNV',
+-- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateFlagsNV',
+-- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateFlagsNV',
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags',
+-- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PipelineCreationFeedbackFlags',
+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlags',
+-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateFlagsEXT',
+-- 'Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags.PipelineDynamicStateCreateFlags',
+-- 'Vulkan.Core10.Enums.PipelineInputAssemblyStateCreateFlags.PipelineInputAssemblyStateCreateFlags',
+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PipelineLayoutCreateFlags',
+-- 'Vulkan.Core10.Enums.PipelineMultisampleStateCreateFlags.PipelineMultisampleStateCreateFlags',
+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateFlagsEXT',
+-- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateFlagsEXT',
+-- 'Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags.PipelineRasterizationStateCreateFlags',
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateFlagsEXT',
+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlags',
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags',
+-- 'Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags.PipelineTessellationStateCreateFlags',
+-- 'Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags.PipelineVertexInputStateCreateFlags',
+-- 'Vulkan.Core10.Enums.PipelineViewportStateCreateFlags.PipelineViewportStateCreateFlags',
+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateFlagsNV',
+-- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.PresentGravityFlagsEXT',
+-- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.PresentScalingFlagsEXT',
+-- 'Vulkan.Core13.Enums.PrivateDataSlotCreateFlags.PrivateDataSlotCreateFlags',
+-- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlags',
+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlags',
+-- 'Vulkan.Core10.Enums.QueryPoolCreateFlags.QueryPoolCreateFlags',
+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlags',
+-- 'Vulkan.Core10.Enums.QueueFlagBits.QueueFlags',
+-- 'Vulkan.Core10.Enums.RenderPassCreateFlagBits.RenderPassCreateFlags',
+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlags',
+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlags',
+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlags',
+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SamplerCreateFlags',
+-- 'Vulkan.Extensions.VK_QNX_screen_surface.ScreenSurfaceCreateFlagsQNX',
+-- 'Vulkan.Core10.Enums.SemaphoreCreateFlags.SemaphoreCreateFlags',
+-- 'Vulkan.Core11.Enums.SemaphoreImportFlagBits.SemaphoreImportFlags',
+-- 'Vulkan.Core12.Enums.SemaphoreWaitFlagBits.SemaphoreWaitFlags',
+-- 'Vulkan.Extensions.VK_AMD_shader_core_properties2.ShaderCorePropertiesFlagsAMD',
+-- 'Vulkan.Extensions.VK_EXT_shader_object.ShaderCreateFlagsEXT',
+-- 'Vulkan.Core10.Enums.ShaderModuleCreateFlags.ShaderModuleCreateFlags',
+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',
+-- 'Vulkan.Core10.Enums.SparseImageFormatFlagBits.SparseImageFormatFlags',
+-- 'Vulkan.Core10.Enums.SparseMemoryBindFlagBits.SparseMemoryBindFlags',
+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags',
+-- 'Vulkan.Extensions.VK_GGP_stream_descriptor_surface.StreamDescriptorSurfaceCreateFlagsGGP',
+-- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SubgroupFeatureFlags',
+-- 'Vulkan.Core13.Enums.SubmitFlagBits.SubmitFlags',
+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SubpassDescriptionFlags',
+-- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCounterFlagsEXT',
+-- 'Vulkan.Extensions.VK_KHR_surface.SurfaceTransformFlagsKHR',
+-- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateFlagsKHR',
+-- 'Vulkan.Core13.Enums.ToolPurposeFlagBits.ToolPurposeFlags',
+-- 'Vulkan.Extensions.VK_EXT_validation_cache.ValidationCacheCreateFlagsEXT',
+-- 'Vulkan.Extensions.VK_NN_vi_surface.ViSurfaceCreateFlagsNN',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBeginCodingFlagsKHR VkVideoBeginCodingFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilityFlagsKHR VkVideoCapabilityFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoChromaSubsamplingFlagsKHR VkVideoChromaSubsamplingFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCodecOperationFlagsKHR VkVideoCodecOperationFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCodingControlFlagsKHR VkVideoCodingControlFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoComponentBitDepthFlagsKHR VkVideoComponentBitDepthFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeCapabilityFlagsKHR VkVideoDecodeCapabilityFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeFlagsKHR VkVideoDecodeFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264PictureLayoutFlagsKHR VkVideoDecodeH264PictureLayoutFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeUsageFlagsKHR VkVideoDecodeUsageFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1CapabilityFlagsKHR VkVideoEncodeAV1CapabilityFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1RateControlFlagsKHR VkVideoEncodeAV1RateControlFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1StdFlagsKHR VkVideoEncodeAV1StdFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1SuperblockSizeFlagsKHR VkVideoEncodeAV1SuperblockSizeFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeCapabilityFlagsKHR VkVideoEncodeCapabilityFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeContentFlagsKHR VkVideoEncodeContentFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeFeedbackFlagsKHR VkVideoEncodeFeedbackFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeFlagsKHR VkVideoEncodeFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilityFlagsKHR VkVideoEncodeH264CapabilityFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlFlagsKHR VkVideoEncodeH264RateControlFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264StdFlagsKHR VkVideoEncodeH264StdFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265CapabilityFlagsKHR VkVideoEncodeH265CapabilityFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265CtbSizeFlagsKHR VkVideoEncodeH265CtbSizeFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlFlagsKHR VkVideoEncodeH265RateControlFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265StdFlagsKHR VkVideoEncodeH265StdFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265TransformBlockSizeFlagsKHR VkVideoEncodeH265TransformBlockSizeFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlFlagsKHR VkVideoEncodeRateControlFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlModeFlagsKHR VkVideoEncodeRateControlModeFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeUsageFlagsKHR VkVideoEncodeUsageFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEndCodingFlagsKHR VkVideoEndCodingFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateFlagsKHR VkVideoSessionCreateFlagsKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersCreateFlagsKHR VkVideoSessionParametersCreateFlagsKHR>,
+-- 'Vulkan.Extensions.VK_KHR_wayland_surface.WaylandSurfaceCreateFlagsKHR',
+-- 'Vulkan.Extensions.VK_KHR_win32_surface.Win32SurfaceCreateFlagsKHR',
+-- 'Vulkan.Extensions.VK_KHR_xcb_surface.XcbSurfaceCreateFlagsKHR',
+-- 'Vulkan.Extensions.VK_KHR_xlib_surface.XlibSurfaceCreateFlagsKHR'
 type Flags = Word32
 
 
@@ -878,8 +1100,6 @@
 -- undefined in its corresponding @Vk*FlagBits2@ type. An application
 -- /cannot/ rely on the state of these unspecified bits.
 --
--- Note
---
 -- Both the @Vk*FlagBits2@ type, and the individual bits defined for that
 -- 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
@@ -892,7 +1112,13 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
--- 'Flags'
+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2KHR', 'Flags',
+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlags2',
+-- 'Vulkan.Extensions.VK_NV_memory_decompression.MemoryDecompressionMethodFlagsNV',
+-- 'Vulkan.Extensions.VK_ARM_scheduling_controls.PhysicalDeviceSchedulingControlsFlagsARM',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2KHR',
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2'
 type Flags64 = Word64
 
 
@@ -932,6 +1158,7 @@
 -- '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_EXT_device_generated_commands.GeneratedCommandsInfoEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV',
@@ -953,6 +1180,7 @@
 -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties',
+-- 'Vulkan.Extensions.VK_EXT_map_memory_placed.PhysicalDeviceMapMemoryPlacedPropertiesEXT',
 -- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT',
 -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',
@@ -982,6 +1210,9 @@
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',
+-- '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.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterIndirectHUAWEI',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect',
@@ -999,10 +1230,11 @@
 -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV',
 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdInitializeGraphScratchMemoryAMDX',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdUpdateBuffer',
--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteBufferMarker2AMD',
+-- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarker2AMD',
 -- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarkerAMD',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutBindingOffsetEXT',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutSizeEXT',
@@ -1018,8 +1250,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_EXT_device_generated_commands.BindIndexBufferIndirectCommandEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindIndexBufferIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.BindPipelineIndirectCommandNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.BindVertexBufferIndirectCommandEXT',
 -- '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',
@@ -1034,6 +1268,8 @@
 -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.DeviceOrHostAddressConstAMDX',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressConstKHR',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressKHR',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.DrawIndirectCountIndirectCommandEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsInfoEXT',
 -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR',
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
@@ -66,8 +66,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_EXT_device_generated_commands.BindIndexBufferIndirectCommandEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindIndexBufferIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.BindPipelineIndirectCommandNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.BindVertexBufferIndirectCommandEXT',
 -- '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',
@@ -82,6 +84,8 @@
 -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.DeviceOrHostAddressConstAMDX',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressConstKHR',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressKHR',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.DrawIndirectCountIndirectCommandEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsInfoEXT',
 -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR',
@@ -135,6 +139,7 @@
 -- '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_EXT_device_generated_commands.GeneratedCommandsInfoEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV',
@@ -156,6 +161,7 @@
 -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties',
+-- 'Vulkan.Extensions.VK_EXT_map_memory_placed.PhysicalDeviceMapMemoryPlacedPropertiesEXT',
 -- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT',
 -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',
@@ -185,6 +191,9 @@
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',
+-- '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.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterIndirectHUAWEI',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect',
@@ -202,10 +211,11 @@
 -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV',
 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdInitializeGraphScratchMemoryAMDX',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdUpdateBuffer',
--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteBufferMarker2AMD',
+-- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarker2AMD',
 -- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarkerAMD',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutBindingOffsetEXT',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutSizeEXT',
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
@@ -76,6 +76,8 @@
 --
 -- = See Also
 --
+-- 'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.PFN_vkGetInstanceProcAddrLUNARG',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_HANDLE VK_DEFINE_HANDLE>,
 -- <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_android_surface.createAndroidSurfaceKHR',
 -- 'Vulkan.Extensions.VK_EXT_debug_report.createDebugReportCallbackEXT',
@@ -124,6 +126,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_HANDLE VK_DEFINE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.DeviceGroupDeviceCreateInfo',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties',
@@ -144,6 +147,7 @@
 -- 'Vulkan.Extensions.VK_EXT_acquire_drm_display.getDrmDisplayEXT',
 -- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getPhysicalDeviceCalibrateableTimeDomainsEXT',
 -- 'Vulkan.Extensions.VK_KHR_calibrated_timestamps.getPhysicalDeviceCalibrateableTimeDomainsKHR',
+-- 'Vulkan.Extensions.VK_NV_cooperative_matrix2.getPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV',
 -- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.getPhysicalDeviceCooperativeMatrixPropertiesKHR',
 -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.getPhysicalDeviceCooperativeMatrixPropertiesNV',
 -- 'Vulkan.Extensions.VK_EXT_directfb_surface.getPhysicalDeviceDirectFBPresentationSupportEXT',
@@ -225,6 +229,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_HANDLE VK_DEFINE_HANDLE>,
 -- <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_full_screen_exclusive.acquireFullScreenExclusiveModeEXT',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImage2KHR',
@@ -234,6 +239,7 @@
 -- 'Vulkan.Core10.CommandBuffer.allocateCommandBuffers',
 -- 'Vulkan.Core10.DescriptorSet.allocateDescriptorSets',
 -- 'Vulkan.Core10.Memory.allocateMemory',
+-- 'Vulkan.Extensions.VK_AMD_anti_lag.antiLagUpdateAMD',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.bindAccelerationStructureMemoryNV',
 -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.bindBufferMemory2',
@@ -278,9 +284,12 @@
 -- 'Vulkan.Core10.Pipeline.createGraphicsPipelines',
 -- 'Vulkan.Core10.Image.createImage',
 -- 'Vulkan.Core10.ImageView.createImageView',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.createIndirectCommandsLayoutEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.createIndirectCommandsLayoutNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.createIndirectExecutionSetEXT',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.createMicromapEXT',
 -- 'Vulkan.Extensions.VK_NV_optical_flow.createOpticalFlowSessionNV',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.createPipelineBinariesKHR',
 -- 'Vulkan.Core10.PipelineCache.createPipelineCache',
 -- 'Vulkan.Core10.PipelineLayout.createPipelineLayout',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.createPrivateDataSlot',
@@ -325,10 +334,13 @@
 -- 'Vulkan.Core10.Pass.destroyFramebuffer',
 -- 'Vulkan.Core10.Image.destroyImage',
 -- 'Vulkan.Core10.ImageView.destroyImageView',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.destroyIndirectCommandsLayoutEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.destroyIndirectCommandsLayoutNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.destroyIndirectExecutionSetEXT',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.destroyMicromapEXT',
 -- 'Vulkan.Extensions.VK_NV_optical_flow.destroyOpticalFlowSessionNV',
 -- 'Vulkan.Core10.Pipeline.destroyPipeline',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.destroyPipelineBinaryKHR',
 -- 'Vulkan.Core10.PipelineCache.destroyPipelineCache',
 -- 'Vulkan.Core10.PipelineLayout.destroyPipelineLayout',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.destroyPrivateDataSlot',
@@ -411,6 +423,7 @@
 -- 'Vulkan.Core10.Fence.getFenceStatus',
 -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.getFenceWin32HandleKHR',
 -- 'Vulkan.Extensions.VK_QCOM_tile_properties.getFramebufferTilePropertiesQCOM',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.getGeneratedCommandsMemoryRequirementsEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.getGeneratedCommandsMemoryRequirementsNV',
 -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.getImageDrmFormatModifierPropertiesEXT',
 -- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements',
@@ -424,6 +437,7 @@
 -- '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.getImageViewHandle64NVX',
 -- 'Vulkan.Extensions.VK_NVX_image_view_handle.getImageViewHandleNVX',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getImageViewOpaqueCaptureDescriptorDataEXT',
 -- 'Vulkan.Extensions.VK_NV_low_latency2.getLatencyTimingsNV',
@@ -440,12 +454,14 @@
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.getMicromapBuildSizesEXT',
 -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.getPastPresentationTimingGOOGLE',
 -- 'Vulkan.Extensions.VK_INTEL_performance_query.getPerformanceParameterINTEL',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.getPipelineBinaryDataKHR',
 -- 'Vulkan.Core10.PipelineCache.getPipelineCacheData',
 -- '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_KHR_pipeline_binary.getPipelineKeyKHR',
 -- 'Vulkan.Extensions.VK_EXT_pipeline_properties.getPipelinePropertiesEXT',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.getPrivateData',
 -- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT',
@@ -487,6 +503,7 @@
 -- 'Vulkan.Extensions.VK_EXT_validation_cache.mergeValidationCachesEXT',
 -- 'Vulkan.Extensions.VK_EXT_display_control.registerDeviceEventEXT',
 -- 'Vulkan.Extensions.VK_EXT_display_control.registerDisplayEventEXT',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.releaseCapturedPipelineDataKHR',
 -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.releaseFullScreenExclusiveModeEXT',
 -- 'Vulkan.Extensions.VK_INTEL_performance_query.releasePerformanceConfigurationINTEL',
 -- 'Vulkan.Extensions.VK_KHR_performance_query.releaseProfilingLockKHR',
@@ -519,6 +536,8 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.updateDescriptorSetWithTemplate',
 -- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.updateDescriptorSetWithTemplateKHR',
 -- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.updateIndirectExecutionSetPipelineEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.updateIndirectExecutionSetShaderEXT',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR>,
 -- 'Vulkan.Core10.Fence.waitForFences',
 -- 'Vulkan.Extensions.VK_KHR_present_wait.waitForPresentKHR',
@@ -545,11 +564,12 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_HANDLE VK_DEFINE_HANDLE>,
 -- <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_metal_objects.ExportMetalCommandQueueInfoEXT',
 -- 'Vulkan.Core10.Queue.getDeviceQueue',
 -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.getDeviceQueue2',
--- 'Vulkan.Extensions.VK_KHR_synchronization2.getQueueCheckpointData2NV',
+-- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.getQueueCheckpointData2NV',
 -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.getQueueCheckpointDataNV',
 -- 'Vulkan.Extensions.VK_EXT_debug_utils.queueBeginDebugUtilsLabelEXT',
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.queueBindSparse',
@@ -581,6 +601,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_HANDLE VK_DEFINE_HANDLE>,
 -- <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_synchronization2.CommandBufferSubmitInfo',
 -- 'Vulkan.Core10.Queue.SubmitInfo',
@@ -695,6 +716,7 @@
 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR>,
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.cmdExecuteGeneratedCommandsEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',
 -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdInitializeGraphScratchMemoryAMDX',
@@ -706,13 +728,14 @@
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdPipelineBarrier',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdPipelineBarrier2',
 -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdPipelineBarrier2KHR',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.cmdPreprocessGeneratedCommandsEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdPushConstants',
 -- 'Vulkan.Extensions.VK_KHR_maintenance6.cmdPushConstants2KHR',
 -- 'Vulkan.Extensions.VK_KHR_maintenance6.cmdPushDescriptorSet2KHR',
 -- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetKHR',
 -- 'Vulkan.Extensions.VK_KHR_maintenance6.cmdPushDescriptorSetWithTemplate2KHR',
--- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetWithTemplateKHR',
+-- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.cmdPushDescriptorSetWithTemplateKHR',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2',
 -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdResetEvent2KHR',
@@ -748,6 +771,7 @@
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT',
+-- 'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp',
@@ -833,7 +857,7 @@
 -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV',
--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteBufferMarker2AMD',
+-- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarker2AMD',
 -- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarkerAMD',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdWriteMicromapsPropertiesEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp',
@@ -859,6 +883,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <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_ray_tracing.BindAccelerationStructureMemoryInfoNV',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo',
@@ -900,6 +925,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.CommandBuffer.CommandBufferAllocateInfo',
 -- 'Vulkan.Core10.CommandPool.createCommandPool',
@@ -921,6 +947,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <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.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo',
@@ -979,7 +1006,7 @@
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdUpdateBuffer',
--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteBufferMarker2AMD',
+-- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarker2AMD',
 -- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarkerAMD',
 -- 'Vulkan.Core10.Buffer.createBuffer',
 -- 'Vulkan.Core10.Buffer.destroyBuffer',
@@ -997,6 +1024,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <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_metal_objects.ExportMetalTextureInfoEXT',
 -- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet',
@@ -1015,6 +1043,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2',
@@ -1069,6 +1098,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo',
 -- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT',
@@ -1077,8 +1107,9 @@
 -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo',
--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT',
--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeQuantizationMapInfoKHR VkVideoEncodeQuantizationMapInfoKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceInfoKHR VkVideoPictureResourceInfoKHR>,
 -- 'Vulkan.Extensions.VK_NV_optical_flow.bindOpticalFlowSessionImageNV',
 -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI',
@@ -1099,6 +1130,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo',
 -- 'Vulkan.Core10.Shader.createShaderModule',
@@ -1117,21 +1149,28 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <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.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsPipelineInfoEXT',
 -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectExecutionSetPipelineInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryCreateInfoKHR',
 -- '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.Extensions.VK_KHR_pipeline_binary.ReleaseCapturedPipelineDataInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.WriteIndirectExecutionSetPipelineEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdBindPipelineShaderGroupNV',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdInitializeGraphScratchMemoryAMDX',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.cmdUpdatePipelineIndirectBufferNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.compileDeferredNV',
 -- 'Vulkan.Core10.Pipeline.createComputePipelines',
@@ -1160,6 +1199,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <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_maintenance6.BindDescriptorBufferEmbeddedSamplersInfoEXT',
 -- 'Vulkan.Extensions.VK_KHR_maintenance6.BindDescriptorSetsInfoKHR',
@@ -1167,6 +1207,7 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateCreateInfo',
 -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX',
 -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectCommandsLayoutCreateInfoEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV',
 -- 'Vulkan.Extensions.VK_KHR_maintenance6.PushConstantsInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_maintenance6.PushDescriptorSetInfoKHR',
@@ -1178,7 +1219,7 @@
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdPushConstants',
 -- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetKHR',
--- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetWithTemplateKHR',
+-- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.cmdPushDescriptorSetWithTemplateKHR',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
 -- 'Vulkan.Core10.PipelineLayout.createPipelineLayout',
 -- 'Vulkan.Core10.PipelineLayout.destroyPipelineLayout'
@@ -1195,6 +1236,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <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_descriptor_buffer.DescriptorDataEXT',
 -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo',
@@ -1216,6 +1258,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <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_maintenance6.BindDescriptorSetsInfoKHR',
 -- 'Vulkan.Core10.DescriptorSet.CopyDescriptorSet',
@@ -1239,10 +1282,12 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.DescriptorSet.DescriptorSetAllocateInfo',
 -- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.DescriptorSetBindingReferenceVALVE',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateCreateInfo',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectExecutionSetShaderLayoutInfoEXT',
 -- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo',
 -- 'Vulkan.Extensions.VK_EXT_shader_object.ShaderCreateInfoEXT',
 -- 'Vulkan.Core10.DescriptorSet.createDescriptorSetLayout',
@@ -1263,6 +1308,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.DescriptorSet.DescriptorSetAllocateInfo',
 -- 'Vulkan.Core10.DescriptorSet.createDescriptorPool',
@@ -1282,6 +1328,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <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_swapchain.AcquireNextImageInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_external_fence_fd.FenceGetFdInfoKHR',
@@ -1312,6 +1359,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <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_swapchain.AcquireNextImageInfoKHR',
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo',
@@ -1346,6 +1394,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <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_metal_objects.ExportMetalSharedEventInfoEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent',
@@ -1373,6 +1422,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoInlineQueryInfoKHR VkVideoInlineQueryInfoKHR>,
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery',
@@ -1405,6 +1455,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',
 -- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo',
@@ -1424,6 +1475,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',
 -- 'Vulkan.Core10.Pass.FramebufferCreateInfo',
@@ -1449,6 +1501,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <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',
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
@@ -77,6 +77,7 @@
 import Vulkan.Core10.Enums.Format (Format)
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Handles (Image(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_MESA_image_alignment_control (ImageAlignmentControlCreateInfoMESA)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionControlEXT)
 import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (ImageDrmFormatModifierExplicitCreateInfoEXT)
@@ -119,6 +120,15 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCreateImage-device-09666# @device@ /must/ support at least
+--     one queue family with one of the @VK_QUEUE_VIDEO_ENCODE_BIT_KHR@,
+--     @VK_QUEUE_VIDEO_DECODE_BIT_KHR@,
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_OPTICAL_FLOW_BIT_NV',
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_SPARSE_BINDING_BIT',
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_TRANSFER_BIT',
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', or
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' capabilities
+--
 -- -   #VUID-vkCreateImage-flags-00939# If the @flags@ member of
 --     @pCreateInfo@ includes
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT',
@@ -529,8 +539,9 @@
 --
 -- -   @mipLevels@ is 1
 --
--- -   @arrayLayers@ is 1, unless the @ycbcrImageArrays@ feature is
---     enabled, or otherwise indicated by
+-- -   @arrayLayers@ is 1, unless the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-ycbcrImageArrays ycbcrImageArrays>
+--     feature is enabled, or otherwise indicated by
 --     'Vulkan.Core10.DeviceInitialization.ImageFormatProperties'::@maxArrayLayers@,
 --     as returned by
 --     'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties'
@@ -560,8 +571,6 @@
 -- and
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association Resource Memory Association>.
 --
--- Note
---
 -- For images created without
 -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_EXTENDED_USAGE_BIT'
 -- a @usage@ bit is valid if it is supported for the format the image is
@@ -877,7 +886,9 @@
 --         -   'ImageCreateInfo'::@format@ equals
 --             <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>::@format@.
 --
---         -   'ImageCreateInfo'::@flags@ only contains bits also set in
+--         -   'ImageCreateInfo'::@flags@ only contains
+--             @VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR@ and\/or
+--             bits also set in
 --             <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>::@imageCreateFlags@.
 --
 --         -   'ImageCreateInfo'::@imageType@ equals
@@ -887,7 +898,9 @@
 --             <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>::@imageTiling@.
 --
 --         -   'ImageCreateInfo'::@usage@ only contains bits also set in
---             <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>::@imageUsageFlags@.
+--             <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>::@imageUsageFlags@,
+--             or 'ImageCreateInfo'::@flags@ includes
+--             'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_EXTENDED_USAGE_BIT'.
 --
 --     -   Otherwise @supportedVideoFormat@ is
 --         'Vulkan.Core10.FundamentalTypes.FALSE'.
@@ -977,6 +990,14 @@
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT',
 --     @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D'
 --
+-- -   #VUID-VkImageCreateInfo-imageType-10197# If @flags@ contains
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT',
+--     @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_ALIASED_BIT',
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT',
+--     or
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
+--
 -- -   #VUID-VkImageCreateInfo-extent-02252# @extent.width@ /must/ be less
 --     than or equal to @imageCreateMaxExtent.width@ (as defined in
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)
@@ -1056,14 +1077,14 @@
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxFramebufferHeight@
 --
 -- -   #VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffsets fragmentDensityMapOffset>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset>
 --     feature is not enabled and @usage@ includes
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT',
 --     @extent.width@ /must/ be less than or equal to
 --     \(\left\lceil{\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\right\rceil\)
 --
 -- -   #VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffsets fragmentDensityMapOffset>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset>
 --     feature is not enabled and @usage@ includes
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT',
 --     @extent.height@ /must/ be less than or equal to
@@ -1284,11 +1305,19 @@
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'
 --
 -- -   #VUID-VkImageCreateInfo-format-04712# If @format@ has a @_422@ or
---     @_420@ suffix, @width@ /must/ be a multiple of 2
+--     @_420@ suffix, @extent.width@ /must/ be a multiple of 2
 --
 -- -   #VUID-VkImageCreateInfo-format-04713# If @format@ has a @_420@
---     suffix, @height@ /must/ be a multiple of 2
+--     suffix, @extent.height@ /must/ be a multiple of 2
 --
+-- -   #VUID-VkImageCreateInfo-format-09583# If @format@ is one of the
+--     @VK_FORMAT_PVTRC1_*_IMG@ formats, @extent.width@ /must/ be a power
+--     of 2
+--
+-- -   #VUID-VkImageCreateInfo-format-09584# If @format@ is one of the
+--     @VK_FORMAT_PVTRC1_*_IMG@ formats, @extent.height@ /must/ be a power
+--     of 2
+--
 -- -   #VUID-VkImageCreateInfo-tiling-02261# If @tiling@ is
 --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',
 --     then the @pNext@ chain /must/ include exactly one of
@@ -1533,7 +1562,9 @@
 --
 -- -   #VUID-VkImageCreateInfo-pNext-06722# If a
 --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'
---     structure was included in the @pNext@ chain and
+--     structure was included in the @pNext@ chain and @format@ is not a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>
+--     format and
 --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@
 --     is not zero, then each format in
 --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@
@@ -1543,6 +1574,19 @@
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT',
 --     be an uncompressed format that is size-compatible with @format@
 --
+-- -   #VUID-VkImageCreateInfo-pNext-10062# If a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'
+--     structure was included in the @pNext@ chain and @format@ is a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>
+--     format and @flags@ contains
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'
+--     and
+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@
+--     is not zero, then each format in
+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@
+--     /must/ be compatible with the 'Vulkan.Core10.Enums.Format.Format'
+--     for the plane of the image format
+--
 -- -   #VUID-VkImageCreateInfo-flags-04738# If @flags@ does not contain
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'
 --     and the @pNext@ chain includes a
@@ -1589,7 +1633,10 @@
 --
 -- -   #VUID-VkImageCreateInfo-flags-08331# If @flags@ includes
 --     @VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR@, then @usage@
---     /must/ not include @VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR@
+--     /must/ not include
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@,
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@, or
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR@
 --
 -- -   #VUID-VkImageCreateInfo-pNext-06811# If the @pNext@ chain includes a
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>
@@ -1597,6 +1644,84 @@
 --     @supportedVideoFormat@ /must/ be
 --     'Vulkan.Core10.FundamentalTypes.TRUE'
 --
+-- -   #VUID-VkImageCreateInfo-pNext-10250# If the @pNext@ chain includes a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>
+--     structure and for any element of its @pProfiles@ member
+--     @videoCodecOperation@ is
+--     @VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR@, then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-videoEncodeAV1 videoEncodeAV1>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkImageCreateInfo-usage-10251# If @usage@ includes
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@ or
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@, then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-videoEncodeQuantizationMap videoEncodeQuantizationMap>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkImageCreateInfo-usage-10252# If @usage@ includes
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@ or
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@, @imageType@
+--     /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'
+--
+-- -   #VUID-VkImageCreateInfo-usage-10253# If @usage@ includes
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@ or
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@, @samples@ /must/
+--     be 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--
+-- -   #VUID-VkImageCreateInfo-usage-10254# If @usage@ includes
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@ or
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@, then the @pNext@
+--     chain /must/ include a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>
+--     structure with @profileCount@ equal to @1@ and @pProfiles@ pointing
+--     to a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>
+--     structure with a @videoCodecOperation@ member specifying an encode
+--     operation
+--
+-- -   #VUID-VkImageCreateInfo-usage-10255# If @usage@ includes
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@, then
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeCapabilitiesKHR VkVideoEncodeCapabilitiesKHR>::@flags@
+--     /must/ include
+--     @VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR@, as
+--     returned by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR>
+--     for the video profile specified in the @pProfiles@ member of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>
+--     structure included in the @pNext@ chain
+--
+-- -   #VUID-VkImageCreateInfo-usage-10256# If @usage@ includes
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@, then
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeCapabilitiesKHR VkVideoEncodeCapabilitiesKHR>::@flags@
+--     /must/ include @VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR@, as
+--     returned by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR>
+--     for the video profile specified in the @pProfiles@ member of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>
+--     structure included in the @pNext@ chain
+--
+-- -   #VUID-VkImageCreateInfo-usage-10257# If @usage@ includes
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@ or
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@, @extent.width@
+--     /must/ be less than or equal to
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeQuantizationMapCapabilitiesKHR VkVideoEncodeQuantizationMapCapabilitiesKHR>::@maxQuantizationMapExtent.width@,
+--     as returned by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR>
+--     for the video profile specified in the @pProfiles@ member of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>
+--     structure included in the @pNext@ chain
+--
+-- -   #VUID-VkImageCreateInfo-usage-10258# If @usage@ includes
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@ or
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@, @extent.height@
+--     /must/ be less than or equal to
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeQuantizationMapCapabilitiesKHR VkVideoEncodeQuantizationMapCapabilitiesKHR>::@maxQuantizationMapExtent.height@,
+--     as returned by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR>
+--     for the video profile specified in the @pProfiles@ member of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>
+--     structure included in the @pNext@ chain
+--
 -- -   #VUID-VkImageCreateInfo-pNext-06390# If the
 --     'Vulkan.Core10.Handles.Image' is to be used to import memory from a
 --     'Vulkan.Extensions.Handles.BufferCollectionFUCHSIA', a
@@ -1693,6 +1818,23 @@
 --     then @usage@ /must/ not contain
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
 --
+-- -   #VUID-VkImageCreateInfo-usage-10245# If @usage@ includes
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT',
+--     then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-hostImageCopy hostImageCopy>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkImageCreateInfo-pNext-09653# If the @pNext@ chain contains a
+--     'Vulkan.Extensions.VK_MESA_image_alignment_control.ImageAlignmentControlCreateInfoMESA'
+--     structure, @tiling@ /must/ be
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'
+--
+-- -   #VUID-VkImageCreateInfo-pNext-09654# If the @pNext@ chain contains a
+--     'Vulkan.Extensions.VK_MESA_image_alignment_control.ImageAlignmentControlCreateInfoMESA'
+--     structure, it /must/ not contain a
+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'
+--     structure
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkImageCreateInfo-sType-sType# @sType@ /must/ be
@@ -1708,6 +1850,7 @@
 --     '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_MESA_image_alignment_control.ImageAlignmentControlCreateInfoMESA',
 --     'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT',
 --     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierExplicitCreateInfoEXT',
 --     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierListCreateInfoEXT',
@@ -1835,6 +1978,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 @ImageAlignmentControlCreateInfoMESA = Just f
     | Just Refl <- eqT @e @ExternalFormatQNX = Just f
     | Just Refl <- eqT @e @OpticalFlowImageFormatInfoNV = Just f
     | Just Refl <- eqT @e @ImportMetalIOSurfaceInfoEXT = Just f
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
@@ -105,6 +105,12 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCreateImageView-device-09667# @device@ /must/ support at
+--     least one queue family with one of the
+--     @VK_QUEUE_VIDEO_ENCODE_BIT_KHR@, @VK_QUEUE_VIDEO_DECODE_BIT_KHR@,
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', or
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' capabilities
+--
 -- -   #VUID-vkCreateImageView-image-09179# 'ImageViewCreateInfo'::@image@
 --     /must/ have been created from @device@
 --
@@ -602,15 +608,13 @@
 -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' when
 -- used as a framebuffer attachment.
 --
--- Note
---
 -- Values intended to be used with one view format /may/ not be exactly
 -- preserved when written or read through a different format. For example,
--- an integer value that happens to have the bit pattern of a floating
--- point denorm or NaN /may/ be flushed or canonicalized when written or
--- read through a view with a floating point format. Similarly, a value
--- written through a signed normalized format that has a bit pattern
--- exactly equal to -2b /may/ be changed to -2b + 1 as described in
+-- an integer value that happens to have the bit pattern of a
+-- floating-point denorm or NaN /may/ be flushed or canonicalized when
+-- written or read through a view with a floating-point format. Similarly,
+-- a value written through a signed normalized format that has a bit
+-- pattern exactly equal to -2b /may/ be changed to -2b + 1 as described in
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fixedfpconv Conversion from Normalized Fixed-Point to Floating-Point>.
 --
 -- If @image@ was created with the
@@ -713,7 +717,7 @@
 -- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D'         | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' |
 -- +----------------------------------------------------------------+-----------------------------------------------+
 --
--- Image type and image view type compatibility requirements
+-- Image Type and Image View Type Compatibility Requirements
 --
 -- == Valid Usage
 --
@@ -749,17 +753,6 @@
 --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' then
 --     @subresourceRange.levelCount@ /must/ be 1
 --
--- -   #VUID-VkImageViewCreateInfo-image-04971# If @image@ was created with
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and @viewType@ is
---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or
---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' then
---     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ /must/ not contain
---     any of
---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT',
---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT',
---     and
---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_ALIASED_BIT'
---
 -- -   #VUID-VkImageViewCreateInfo-image-04972# If @image@ was created with
 --     a @samples@ value not equal to
 --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' then
@@ -843,6 +836,20 @@
 --     @VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR@, then @usage@
 --     /must/ not include @VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR@
 --
+-- -   #VUID-VkImageViewCreateInfo-usage-10259# If @usage@ contains
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@, 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
+--     @VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@
+--
+-- -   #VUID-VkImageViewCreateInfo-usage-10260# If @usage@ contains
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@, 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
+--     @VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@
+--
 -- -   #VUID-VkImageViewCreateInfo-usage-08932# If @usage@ contains
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT',
 --     and any of the following is true:
@@ -969,8 +976,8 @@
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT'
 --     flag, the
 --     'Vulkan.Extensions.VK_KHR_maintenance6.PhysicalDeviceMaintenance6PropertiesKHR'::@blockTexelViewCompatibleMultipleLayers@
---     property is not set to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     @format@ is a non-compressed format, then the @layerCount@ member of
+--     property is not 'Vulkan.Core10.FundamentalTypes.TRUE', and @format@
+--     is a non-compressed format, then the @layerCount@ member of
 --     @subresourceRange@ /must/ be @1@
 --
 -- -   #VUID-VkImageViewCreateInfo-pNext-01585# If a
@@ -1266,6 +1273,13 @@
 --     /must/ be 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or
 --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY'
 --
+-- -   #VUID-VkImageViewCreateInfo-image-10261# If @image@ was created with
+--     @usage@ containing
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@ or
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@, then @viewType@
+--     /must/ be 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY'
+--
 -- -   #VUID-VkImageViewCreateInfo-flags-08106# If @flags@ includes
 --     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT',
 --     the
@@ -1388,6 +1402,10 @@
 --     'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'::@filterSize.height@
 --     /must/ be less than or equal to
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-weightfilter-maxdimension ::maxWeightFilterDimension.height>
+--
+-- -   #VUID-VkImageViewCreateInfo-subresourceRange-09594#
+--     @subresourceRange.aspectMask@ /must/ be valid for the @format@ the
+--     @image@ was created with
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core10/LayerDiscovery.hs b/src/Vulkan/Core10/LayerDiscovery.hs
--- a/src/Vulkan/Core10/LayerDiscovery.hs
+++ b/src/Vulkan/Core10/LayerDiscovery.hs
@@ -76,14 +76,14 @@
 --
 -- If @pProperties@ is @NULL@, then the number of layer 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 layer 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 properties were returned.
+-- /must/ point to a variable set by the application 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 layer
+-- 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 properties were returned.
 --
 -- The list of available layers may change at any time due to actions
 -- outside of the Vulkan implementation, so two calls to
@@ -161,14 +161,14 @@
 --
 -- If @pProperties@ is @NULL@, then the number of layer 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 layer 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 properties were returned.
+-- /must/ point to a variable set by the application 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 layer
+-- 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 properties were returned.
 --
 -- The list of layers enumerated by 'enumerateDeviceLayerProperties' /must/
 -- be exactly the sequence of layers enabled for the instance. The members
@@ -176,11 +176,9 @@
 -- properties when the layer was enumerated by
 -- 'enumerateInstanceLayerProperties'.
 --
--- Note
---
 -- Due to platform details on Android, 'enumerateDeviceLayerProperties' may
 -- be called with @physicalDevice@ equal to @NULL@ during layer discovery.
--- This behaviour will only be observed by layer implementations, and not
+-- This behavior will only be observed by layer implementations, and not
 -- the underlying Vulkan driver.
 --
 -- == Valid Usage (Implicit)
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
@@ -11,7 +11,8 @@
                              , getDeviceMemoryCommitment
                              , MemoryAllocateInfo(..)
                              , MappedMemoryRange(..)
-                             , MemoryMapFlags(..)
+                             , MemoryMapFlagBits(..)
+                             , MemoryMapFlags
                              ) where
 
 import Vulkan.Internal.Utils (traceAroundEvent)
@@ -91,8 +92,8 @@
 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)
-import Vulkan.Core10.Enums.MemoryMapFlags (MemoryMapFlags(..))
+import Vulkan.Core10.Enums.MemoryMapFlagBits (MemoryMapFlagBits(..))
+import Vulkan.Core10.Enums.MemoryMapFlagBits (MemoryMapFlags)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (MemoryOpaqueCaptureAddressAllocateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (MemoryPriorityAllocateInfoEXT)
 import Vulkan.CStruct.Extends (PeekChain)
@@ -107,7 +108,8 @@
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MAPPED_MEMORY_RANGE))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
-import Vulkan.Core10.Enums.MemoryMapFlags (MemoryMapFlags(..))
+import Vulkan.Core10.Enums.MemoryMapFlagBits (MemoryMapFlagBits(..))
+import Vulkan.Core10.Enums.MemoryMapFlagBits (MemoryMapFlags)
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
   unsafe
@@ -134,8 +136,6 @@
 --     contents of data protected memory objects, even if those memory
 --     objects were previously freed.
 --
--- Note
---
 -- The contents of memory allocated by one application /should/ not be a
 -- function of data from protected memory objects of another application,
 -- even if those memory objects were previously freed.
@@ -147,8 +147,6 @@
 -- feature describes the number of allocations that /can/ exist
 -- simultaneously before encountering these internal limits.
 --
--- Note
---
 -- For historical reasons, if @maxMemoryAllocationCount@ is exceeded, some
 -- implementations may return
 -- 'Vulkan.Core10.Enums.Result.ERROR_TOO_MANY_OBJECTS'. Exceeding this
@@ -156,8 +154,6 @@
 -- rely on the use of the returned error code in order to identify when the
 -- limit is reached.
 --
--- Note
---
 -- Many protected memory implementations involve complex hardware and
 -- system software support, and often have additional and much lower limits
 -- on the number of simultaneous protected memory allocations (from memory
@@ -214,7 +210,7 @@
 --
 -- -   #VUID-vkAllocateMemory-pAllocateInfo-01713#
 --     @pAllocateInfo->allocationSize@ /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'::@memoryHeaps@[@memindex@].@size@
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'::@memoryHeaps@[memindex].@size@
 --     where @memindex@ =
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'::@memoryTypes@[@pAllocateInfo->memoryTypeIndex@].@heapIndex@
 --     as returned by
@@ -355,8 +351,6 @@
 -- If a memory object is mapped at the time it is freed, it is implicitly
 -- unmapped.
 --
--- Note
---
 -- As described
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-unmap-does-not-flush below>,
 -- host writes are not implicitly flushed when the memory object is
@@ -433,13 +427,9 @@
 -- After a successful call to 'mapMemory' the memory object @memory@ is
 -- considered to be currently /host mapped/.
 --
--- Note
---
 -- It is an application error to call 'mapMemory' on a memory object that
 -- is already /host mapped/.
 --
--- Note
---
 -- 'mapMemory' will fail if the implementation is unable to allocate an
 -- appropriately sized contiguous virtual address range, e.g. due to
 -- virtual address space fragmentation or platform limits. In such cases,
@@ -469,8 +459,6 @@
 -- responsible for synchronizing both device and host access to that memory
 -- range.
 --
--- Note
---
 -- It is important for the application developer to become meticulously
 -- familiar with all of the mechanisms described in the chapter on
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization Synchronization and Cache Control>
@@ -503,6 +491,10 @@
 -- -   #VUID-vkMapMemory-memory-00683# @memory@ /must/ not have been
 --     allocated with multiple instances
 --
+-- -   #VUID-vkMapMemory-flags-09568#
+--     'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT'
+--     /must/ not be set in @flags@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkMapMemory-device-parameter# @device@ /must/ be a valid
@@ -511,7 +503,9 @@
 -- -   #VUID-vkMapMemory-memory-parameter# @memory@ /must/ be a valid
 --     'Vulkan.Core10.Handles.DeviceMemory' handle
 --
--- -   #VUID-vkMapMemory-flags-zerobitmask# @flags@ /must/ be @0@
+-- -   #VUID-vkMapMemory-flags-parameter# @flags@ /must/ be a valid
+--     combination of
+--     'Vulkan.Core10.Enums.MemoryMapFlagBits.MemoryMapFlagBits' values
 --
 -- -   #VUID-vkMapMemory-ppData-parameter# @ppData@ /must/ be a valid
 --     pointer to a pointer value
@@ -542,7 +536,7 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.DeviceMemory',
 -- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
--- 'Vulkan.Core10.Enums.MemoryMapFlags.MemoryMapFlags'
+-- 'Vulkan.Core10.Enums.MemoryMapFlagBits.MemoryMapFlags'
 mapMemory :: forall io
            . (MonadIO io)
           => -- | @device@ is the logical device that owns the memory.
@@ -557,7 +551,9 @@
              -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to map from @offset@ to the end
              -- of the allocation.
              DeviceSize
-          -> -- | @flags@ is reserved for future use.
+          -> -- | @flags@ is a bitmask of
+             -- 'Vulkan.Core10.Enums.MemoryMapFlagBits.MemoryMapFlagBits' specifying
+             -- additional parameters of the memory map operation.
              MemoryMapFlags
           -> io (("data" ::: Ptr ()))
 mapMemory device memory offset size flags = liftIO . evalContT $ do
@@ -604,7 +600,7 @@
 --
 -- Calling 'unmapMemory' is equivalent to calling
 -- 'Vulkan.Extensions.VK_KHR_map_memory2.unmapMemory2KHR' with an empty
--- @pNext@ chain and the flags parameter set to zero.
+-- @pNext@ chain and @flags@ set to zero.
 --
 -- == Valid Usage
 --
@@ -667,21 +663,50 @@
 -- using the 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_WRITE_BIT'
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>.
 --
--- Within each range described by @pMemoryRanges@, each set of
--- @nonCoherentAtomSize@ bytes in that range is flushed if any byte in that
--- set has been written by the host since it was first host mapped, or the
--- last time it was flushed. If @pMemoryRanges@ includes sets of
--- @nonCoherentAtomSize@ bytes where no bytes have been written by the
--- host, those bytes /must/ not be flushed.
+-- The first
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all host operations that happened-before it, as defined by the
+-- host memory model.
 --
+-- Note
+--
+-- Some systems allow writes that do not directly integrate with the host
+-- memory model; these have to be synchronized by the application manually.
+-- One example of this is non-temporal store instructions on x86; to ensure
+-- these happen-before submission, applications should call @_mm_sfence()@.
+--
+-- The second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- is empty.
+--
+-- The first
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+-- includes host writes to the specified memory ranges.
+--
+-- Note
+--
+-- When a host write to a memory location is made available in this way,
+-- each whole aligned set of
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nonCoherentAtomSize nonCoherentAtomSize>
+-- bytes that the memory location exists in will also be made available as
+-- if they were written by the host. For example, with a
+-- @nonCoherentAtomSize@ of 128, if an application writes to the first byte
+-- of a memory object via a host mapping, the first 128 bytes of the memory
+-- object will be made available by this command. While the value of the
+-- following 127 bytes will be unchanged, this does count as an access for
+-- the purpose of synchronization, so care must be taken to avoid data
+-- races.
+--
+-- The second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+-- is empty.
+--
 -- Unmapping non-coherent memory does not implicitly flush the host mapped
 -- memory, and host writes that have not been flushed /may/ not ever be
 -- visible to the device. However, implementations /must/ ensure that
 -- writes that have not been flushed do not become visible to any other
 -- memory.
 --
--- Note
---
 -- The above guarantee avoids a potential memory corruption in scenarios
 -- where host writes to a mapped memory object have not been flushed before
 -- the memory is unmapped (or freed), and the virtual address range is
@@ -754,13 +779,59 @@
 -- written by the host and then invalidated without first being flushed,
 -- its contents are undefined.
 --
--- Within each range described by @pMemoryRanges@, each set of
--- @nonCoherentAtomSize@ bytes in that range is invalidated if any byte in
--- that set has been written by the device since it was first host mapped,
--- or the last time it was invalidated.
+-- The first
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all host operations that happened-before it, as defined by the
+-- host memory model.
 --
 -- Note
 --
+-- This function does not synchronize with device operations directly -
+-- other host
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization synchronization operations>
+-- that depend on device operations such as
+-- 'Vulkan.Core10.Fence.waitForFences' must be executed beforehand. So for
+-- any non-coherent device write to be made visible to the host, there has
+-- to be a dependency chain along the following lines:
+--
+-- 1.  Device write
+--
+-- 2.  Device memory barrier including host reads in its second scope
+--
+-- 3.  Signal on the device (e.g. a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>)
+--
+-- 4.  Wait on the host (e.g. 'Vulkan.Core10.Fence.waitForFences')
+--
+-- 5.  'invalidateMappedMemoryRanges'
+--
+-- The second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all host operations that happen-after it, as defined by the
+-- host memory model.
+--
+-- The first
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+-- is empty.
+--
+-- The second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+-- includes host reads to the specified memory ranges.
+--
+-- Note
+--
+-- When a device write to a memory location is made visible to the host in
+-- this way, each whole aligned set of
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nonCoherentAtomSize nonCoherentAtomSize>
+-- bytes that the memory location exists in will also be made visible as if
+-- they were written by the device. For example, with a
+-- @nonCoherentAtomSize@ of 128, if an application writes to the first byte
+-- of a memory object on the device, the first 128 bytes of the memory
+-- object will be made visible by this command. While the value of the
+-- following 127 bytes will be unchanged, this does count as an access for
+-- the purpose of synchronization, so care must be taken to avoid data
+-- races.
+--
 -- Mapping non-coherent memory does not implicitly invalidate that memory.
 --
 -- == Return Codes
@@ -922,8 +993,6 @@
 -- Vulkan instance to obtain data from the exporting Vulkan instance or
 -- vice-versa.
 --
--- Note
---
 -- How exported and imported memory is isolated is left to the
 -- implementation, but applications should be aware that such isolation
 -- /may/ prevent implementations from placing multiple exportable memory
@@ -934,7 +1003,7 @@
 -- Importing memory /must/ not increase overall heap usage within a system.
 -- However, it /must/ affect the following per-process values:
 --
--- -   'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties'::@maxMemoryAllocationCount@
+-- -   'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxMemoryAllocationCount@
 --
 -- -   'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT'::@heapUsage@
 --
@@ -954,8 +1023,8 @@
 -- implementations /should/ not strictly follow @memoryTypeIndex@. Instead,
 -- they /should/ modify the allocation internally to use the required
 -- memory type for the application’s given usage. This is because for an
--- export operation, there is currently no way for the client to know the
--- memory type index before allocating.
+-- export operation, there is currently no way for the application to know
+-- the memory type index before allocating.
 --
 -- == Valid Usage
 --
@@ -981,7 +1050,7 @@
 --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImportMemoryBufferCollectionFUCHSIA'::@collection@
 --     and
 --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImportMemoryBufferCollectionFUCHSIA'::@index@
---     must match
+--     /must/ match
 --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA'::@collection@
 --     and
 --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA'::@index@,
@@ -998,7 +1067,7 @@
 --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImportMemoryBufferCollectionFUCHSIA'::@collection@
 --     and
 --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImportMemoryBufferCollectionFUCHSIA'::@index@
---     must match
+--     /must/ match
 --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA'::@collection@
 --     and
 --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA'::@index@,
@@ -1316,7 +1385,7 @@
 --     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
+--     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
@@ -1340,7 +1409,7 @@
 --     '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
+--     /must/ be identical
 --
 -- -   #VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03329# If
 --     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo'::@opaqueCaptureAddress@
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
@@ -178,8 +178,6 @@
 -- is performed where available memory in the device domain is also made
 -- available to the host domain.
 --
--- Note
---
 -- When
 -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'
 -- is used, available memory in host domain is automatically made visible
@@ -190,15 +188,15 @@
 -- @srcQueueFamilyIndex@ is equal to the current queue family, then the
 -- memory barrier defines a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>
--- for the specified buffer range, and the second access scope includes no
--- access, as if @dstAccessMask@ was @0@.
+-- for the specified buffer range, and the second synchronization scope of
+-- the calling command does not apply to this operation.
 --
 -- If @dstQueueFamilyIndex@ is not equal to @srcQueueFamilyIndex@, and
 -- @dstQueueFamilyIndex@ is equal to the current queue family, then the
 -- memory barrier defines a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>
--- for the specified buffer range, and the first access scope includes no
--- access, as if @srcAccessMask@ was @0@.
+-- for the specified buffer range, and the first synchronization scope of
+-- the calling command does not apply to this operation.
 --
 -- == Valid Usage
 --
@@ -452,15 +450,16 @@
 -- @srcQueueFamilyIndex@ is equal to the current queue family, then the
 -- memory barrier defines a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>
--- for the specified image subresource range, and the second access scope
--- includes no access, as if @dstAccessMask@ was @0@.
+-- for the specified image subresource range, and the second
+-- synchronization scope of the calling command does not apply to this
+-- operation.
 --
 -- If @dstQueueFamilyIndex@ is not equal to @srcQueueFamilyIndex@, and
 -- @dstQueueFamilyIndex@ is equal to the current queue family, then the
 -- memory barrier defines a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>
--- for the specified image subresource range, and the first access scope
--- includes no access, as if @srcAccessMask@ was @0@.
+-- for the specified image subresource range, and the first synchronization
+-- scope of the calling command does not apply to this operation.
 --
 -- If the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>
@@ -469,8 +468,6 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>
 -- for the specified image subresource range.
 --
--- Note
---
 -- If the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>
 -- feature is enabled, when the old and new layout are equal, the layout
@@ -786,6 +783,17 @@
 --     @VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR@ then @image@ /must/ have been
 --     created with @VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR@
 --
+-- -   #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-10287# 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>
+--     or @oldLayout@ and @newLayout@ define an
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,
+--     and @oldLayout@ or @newLayout@ is
+--     @VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR@ then @image@
+--     /must/ have been created with
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@ or
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@
+--
 -- -   #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07006# 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>
@@ -914,6 +922,10 @@
 --     or
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'
 --
+-- -   #VUID-VkImageMemoryBarrier-subresourceRange-09601#
+--     @subresourceRange.aspectMask@ /must/ be valid for the @format@ the
+--     @image@ was created with
+--
 -- -   #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
@@ -1199,7 +1211,7 @@
            mempty
 
 
--- | VkDrawIndirectCommand - Structure specifying a indirect drawing command
+-- | VkDrawIndirectCommand - Structure specifying an indirect drawing command
 --
 -- = Description
 --
@@ -1235,11 +1247,6 @@
 --     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
 --     /must/ be @0@
 --
--- -   #VUID-VkDrawIndirectCommand-None-00500# For a given vertex buffer
---     binding, any attribute data fetched /must/ be entirely contained
---     within the corresponding vertex buffer binding, as described in
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>
---
 -- -   #VUID-VkDrawIndirectCommand-firstInstance-00501# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>
 --     feature is not enabled, @firstInstance@ /must/ be @0@
@@ -1304,7 +1311,7 @@
            zero
 
 
--- | VkDrawIndexedIndirectCommand - Structure specifying a indexed indirect
+-- | VkDrawIndexedIndirectCommand - Structure specifying an indexed indirect
 -- drawing command
 --
 -- = Description
@@ -1341,10 +1348,10 @@
 --     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
 --     /must/ be @0@
 --
--- -   #VUID-VkDrawIndexedIndirectCommand-robustBufferAccess2-08798# If
+-- -   #VUID-VkDrawIndexedIndirectCommand-robustBufferAccess2-08798# If the
 --     <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
+--     feature 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
@@ -1354,12 +1361,6 @@
 --     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
---     contained within the corresponding vertex buffer binding, as
---     described in
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>
---
 -- -   #VUID-VkDrawIndexedIndirectCommand-firstInstance-00554# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>
 --     feature is not enabled, @firstInstance@ /must/ be @0@
@@ -1431,7 +1432,7 @@
            zero
 
 
--- | VkDispatchIndirectCommand - Structure specifying a indirect dispatching
+-- | VkDispatchIndirectCommand - Structure specifying an indirect dispatching
 -- command
 --
 -- = Description
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
@@ -154,6 +154,10 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCreateFramebuffer-device-10002# @device@ /must/ support at
+--     least one queue family with the
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' capability
+--
 -- -   #VUID-vkCreateFramebuffer-pCreateInfo-02777# If @pCreateInfo->flags@
 --     does not include
 --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
@@ -325,6 +329,12 @@
 
 -- | vkCreateRenderPass - Create a new render pass object
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCreateRenderPass-device-10000# @device@ /must/ support at
+--     least one queue family with the
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' capability
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCreateRenderPass-device-parameter# @device@ /must/ be a
@@ -603,8 +613,6 @@
 -- -   Attachments using views of distinct image subresources which are
 --     bound to overlapping memory ranges.
 --
--- Note
---
 -- Render passes /must/ include subpass dependencies (either directly or
 -- via a subpass dependency chain) between any two subpasses that operate
 -- on the same attachment or aliasing attachments and those subpass
@@ -635,8 +643,6 @@
 -- attachment indices, which allows that image view to be used multiple
 -- times even if other aliases are used in between.
 --
--- Note
---
 -- Once an attachment needs the
 -- 'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT'
 -- bit, there /should/ be no additional cost of introducing additional
@@ -1103,7 +1109,7 @@
 -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', the application /must/
 -- not read from the corresponding input attachment index. Fragment shaders
 -- /can/ use subpass input variables to access the contents of an input
--- attachment at the fragment’s (x, y, layer) framebuffer coordinates.
+-- attachment at the fragment’s (xf,yf) framebuffer coordinates and layer.
 -- Input attachments /must/ not be used by any subpasses within a render
 -- pass that enables
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.
@@ -1702,8 +1708,6 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-layout-transitions image layout transitions>
 -- within the render pass.
 --
--- Note
---
 -- For non-attachment resources, the memory dependency expressed by subpass
 -- dependency is nearly identical to that of a
 -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' (with matching @srcAccessMask@
@@ -1764,11 +1768,11 @@
 --     feature is not enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-VkSubpassDependency-srcStageMask-07318# If neither the
+-- -   #VUID-VkSubpassDependency-srcStageMask-07318# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @srcStageMask@ /must/ not contain
+--     features are enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-VkSubpassDependency-srcStageMask-03937# If the
@@ -1777,9 +1781,9 @@
 --
 -- -   #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>
---     are enabled, @srcStageMask@ /must/ not contain
+--     extension or the
+--     <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-VkSubpassDependency-dstStageMask-04090# If the
@@ -1819,11 +1823,11 @@
 --     feature is not enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-VkSubpassDependency-dstStageMask-07318# If neither the
+-- -   #VUID-VkSubpassDependency-dstStageMask-07318# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @dstStageMask@ /must/ not contain
+--     features are enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-VkSubpassDependency-dstStageMask-03937# If the
@@ -1832,9 +1836,9 @@
 --
 -- -   #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>
---     are enabled, @dstStageMask@ /must/ not contain
+--     extension or the
+--     <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-VkSubpassDependency-srcSubpass-00864# @srcSubpass@ /must/ be
@@ -2009,8 +2013,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Care should be taken to avoid a data race here; if any subpasses access
 -- attachments with overlapping memory locations, and one of those accesses
 -- is a write, a subpass dependency needs to be included between them.
@@ -2476,15 +2478,16 @@
 --     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
+-- -   #VUID-VkFramebufferCreateInfo-flags-04539# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is not enabled or the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustFragmentShadingRateAttachmentAccess robustFragmentShadingRateAttachmentAccess>
+--     limit is 'Vulkan.Core10.FundamentalTypes.FALSE' or the @imageView@
+--     member of a
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     structure was created with
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@
+--     greater than 0, @flags@ does not include
 --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
 --     an 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>
@@ -2494,8 +2497,16 @@
 --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'
 --     which references that attachment
 --
--- -   #VUID-VkFramebufferCreateInfo-flags-04540# If @flags@ does not
---     include
+-- -   #VUID-VkFramebufferCreateInfo-flags-04540# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is not enabled or the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustFragmentShadingRateAttachmentAccess robustFragmentShadingRateAttachmentAccess>
+--     limit is 'Vulkan.Core10.FundamentalTypes.FALSE' or the @imageView@
+--     member of a
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     structure was created with
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@
+--     greater than 0, @flags@ does not include
 --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
 --     an 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>
@@ -2603,7 +2614,16 @@
 --     in @renderPass@ /must/ be greater than or equal to
 --     \(\left\lceil{\frac{height}{maxFragmentDensityTexelSize_{height}}}\right\rceil\)
 --
--- -   #VUID-VkFramebufferCreateInfo-flags-04543# If @flags@ includes
+-- -   #VUID-VkFramebufferCreateInfo-flags-04543# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is not enabled or the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustFragmentShadingRateAttachmentAccess robustFragmentShadingRateAttachmentAccess>
+--     limit is 'Vulkan.Core10.FundamentalTypes.FALSE' or the @imageView@
+--     member of a
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     structure was created with
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@
+--     greater than 0, and @flags@ includes
 --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
 --     the @width@ member of any element of the @pAttachmentImageInfos@
 --     member of a
@@ -2616,7 +2636,16 @@
 --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'
 --     which references that attachment
 --
--- -   #VUID-VkFramebufferCreateInfo-flags-04544# If @flags@ includes
+-- -   #VUID-VkFramebufferCreateInfo-flags-04544# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is not enabled or the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustFragmentShadingRateAttachmentAccess robustFragmentShadingRateAttachmentAccess>
+--     limit is 'Vulkan.Core10.FundamentalTypes.FALSE' or the @imageView@
+--     member of a
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     structure was created with
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@
+--     greater than 0, and @flags@ includes
 --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
 --     the @height@ member of any element of the @pAttachmentImageInfos@
 --     member of a
@@ -2640,12 +2669,14 @@
 --
 -- -   #VUID-VkFramebufferCreateInfo-flags-04587# If @flags@ includes
 --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT'
---     and @renderPass@ was specified with non-zero view masks, each
---     element of @pAttachments@ that is used as a
+--     and @renderPass@ was specified with non-zero view masks, the
+--     @layerCount@ member of any element of the @pAttachmentImageInfos@
+--     member of a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'
+--     structure in the @pNext@ chain 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>
---     by @renderPass@ /must/ have a @layerCount@ that is either @1@, or
---     greater than the index of the most significant bit set in any of
---     those view masks
+--     /must/ be either @1@, or greater than the index of the most
+--     significant bit set in any of those view masks
 --
 -- -   #VUID-VkFramebufferCreateInfo-renderPass-03198# If multiview is
 --     enabled for @renderPass@ and @flags@ includes
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
@@ -129,13 +129,14 @@
 import Vulkan.CStruct.Extends (withSomeCStruct)
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (AttachmentSampleCountInfoAMD)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_mixed_attachment_samples (AttachmentSampleCountInfoAMD)
 import Vulkan.Core10.Enums.BlendFactor (BlendFactor)
 import Vulkan.Core10.Enums.BlendOp (BlendOp)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.CStruct.Extends (Chain)
 import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlags)
 import Vulkan.Core10.Enums.CompareOp (CompareOp)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (ComputePipelineIndirectBufferInfoNV)
 import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_utils (DebugUtilsObjectNameInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (DepthBiasRepresentationInfoEXT)
@@ -156,11 +157,12 @@
 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 {-# SOURCE #-} Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (MultiviewPerViewAttributesInfoNVX)
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.Core10.Handles (Pipeline)
 import Vulkan.Core10.Handles (Pipeline(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PipelineBinaryInfoKHR)
 import Vulkan.Core10.Handles (PipelineCache)
 import Vulkan.Core10.Handles (PipelineCache(..))
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT)
@@ -202,6 +204,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoKHR)
 import Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags (PipelineVertexInputStateCreateFlags)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportCoarseSampleOrderStateCreateInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_control (PipelineViewportDepthClampControlCreateInfoEXT)
 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)
@@ -301,6 +304,10 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCreateGraphicsPipelines-device-09662# @device@ /must/
+--     support at least one queue family with the
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' capability
+--
 -- -   #VUID-vkCreateGraphicsPipelines-flags-00720# If the @flags@ member
 --     of any element of @pCreateInfos@ contains the
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
@@ -321,8 +328,37 @@
 --     host access to @pipelineCache@ /must/ be
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>
 --
--- Note
+-- -   #VUID-vkCreateGraphicsPipelines-pNext-09616# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@, @pipelineCache@ /must/
+--     be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
 --
+-- -   #VUID-vkCreateGraphicsPipelines-pNext-09617# If a
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
+--     structure with the
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+--     flag set is included in the @pNext@ chain of any element of
+--     @pCreateInfos@, @pipelineCache@ /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCreateGraphicsPipelines-binaryCount-09620# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT'
+--     /must/ not be set in the @flags@ of that element
+--
+-- -   #VUID-vkCreateGraphicsPipelines-binaryCount-09621# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT'
+--     /must/ not be set in the @flags@ of that element
+--
+-- -   #VUID-vkCreateGraphicsPipelines-binaryCount-09622# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'
+--     /must/ not be set in the @flags@ of that element
+--
 -- 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'
@@ -456,6 +492,10 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCreateComputePipelines-device-09661# @device@ /must/ support
+--     at least one queue family with the
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT' capability
+--
 -- -   #VUID-vkCreateComputePipelines-flags-00695# If the @flags@ member of
 --     any element of @pCreateInfos@ contains the
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
@@ -476,6 +516,37 @@
 --     host access to @pipelineCache@ /must/ be
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>
 --
+-- -   #VUID-vkCreateComputePipelines-pNext-09616# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@, @pipelineCache@ /must/
+--     be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCreateComputePipelines-pNext-09617# If a
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
+--     structure with the
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+--     flag set is included in the @pNext@ chain of any element of
+--     @pCreateInfos@, @pipelineCache@ /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCreateComputePipelines-binaryCount-09620# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT'
+--     /must/ not be set in the @flags@ of that element
+--
+-- -   #VUID-vkCreateComputePipelines-binaryCount-09621# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT'
+--     /must/ not be set in the @flags@ of that element
+--
+-- -   #VUID-vkCreateComputePipelines-binaryCount-09622# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'
+--     /must/ not be set in the @flags@ of that element
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCreateComputePipelines-device-parameter# @device@ /must/ be
@@ -665,8 +736,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Despite their names, @minDepth@ /can/ be less than, equal to, or greater
 -- than @maxDepth@.
 --
@@ -1024,8 +1093,6 @@
 -- /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'
@@ -1247,18 +1314,32 @@
 --     '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>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroupSize 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>.
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroupSize subgroupSize>
 --
+-- -   #VUID-VkPipelineShaderStageCreateInfo-module-10169# If @module@ uses
+--     the @OpTypeCooperativeMatrixKHR@ instruction with a @Scope@ equal to
+--     @Workgroup@, 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-subgroupSize subgroupSize>
+--     and the total local workgroup size /must/ be a power of two multiple
+--     of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroupSize subgroupSize>
+--     and /must/ be less than or equal to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-cooperativeMatrixWorkgroupScopeMaxWorkgroupSize cooperativeMatrixWorkgroupScopeMaxWorkgroupSize>
+--
 -- -   #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:
+--     be a valid 'Vulkan.Core10.Handles.ShaderModule' , or the @pNext@
+--     chain of the parent @Vk*CreateInfo@ structure /must/ set
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     to a value greater than @0@, if none of the following features are
+--     enabled:
 --
 --     -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>
 --
@@ -1268,12 +1349,15 @@
 --     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
+--     the @pNext@ chain , or the @pNext@ chain of the parent
+--     @Vk*CreateInfo@ structure /must/ set
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     to a value greater than @0@,
 --
 -- -   #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
+--     module identifier is specified for this @stage@, the @pNext@ chain
+--     /must/ not include a 'Vulkan.Core10.Shader.ShaderModuleCreateInfo'
+--     structure
 --
 -- -   #VUID-VkPipelineShaderStageCreateInfo-stage-06848# If a shader
 --     module identifier is specified for this @stage@, @module@ /must/ be
@@ -1444,9 +1528,9 @@
 -- described in more detail in
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.
 --
--- If a
+-- If the @pNext@ chain includes a
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
--- structure is present in the @pNext@ chain,
+-- structure,
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@
 -- from that structure is used instead of @flags@ from this structure.
 --
@@ -1455,7 +1539,7 @@
 -- -   #VUID-VkComputePipelineCreateInfo-None-09497# If the @pNext@ chain
 --     does not include a
 --     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
---     structure, @flags@ must be a valid combination of
+--     structure, @flags@ /must/ be a valid combination of
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
 --     values
 --
@@ -1480,8 +1564,12 @@
 --
 -- -   #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
+--     /must/ match the shader stage
 --
+-- -   #VUID-VkComputePipelineCreateInfo-layout-10069# If a push constant
+--     block is declared in a shader, the block must be contained inside
+--     the push constant range in @layout@ that matches the stage
+--
 -- -   #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
@@ -1532,7 +1620,7 @@
 --
 -- -   #VUID-VkComputePipelineCreateInfo-flags-09007# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>
---     is not enabled, @flags@ /must/ not include
+--     feature is not enabled, @flags@ /must/ not include
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
 --
 -- -   #VUID-VkComputePipelineCreateInfo-flags-09008# If @flags@ includes
@@ -1542,6 +1630,12 @@
 --     'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV'
 --     specifying the address where the pipeline’s metadata will be saved
 --
+-- -   #VUID-VkComputePipelineCreateInfo-flags-11007# If @flags@ includes
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
 -- -   #VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>
@@ -1566,9 +1660,9 @@
 --     be less than or equal to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@
 --
--- -   #VUID-VkComputePipelineCreateInfo-shaderEnqueue-09177# If
+-- -   #VUID-VkComputePipelineCreateInfo-shaderEnqueue-09177# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderEnqueue shaderEnqueue>
---     is not enabled, @flags@ /must/ not include
+--     feature is not enabled, @flags@ /must/ not include
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
 --
 -- -   #VUID-VkComputePipelineCreateInfo-flags-09178# If @flags@ does not
@@ -1598,6 +1692,8 @@
 -- -   #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_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV',
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR',
 --     'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',
 --     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR',
 --     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',
@@ -1663,7 +1759,9 @@
     | 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 @PipelineBinaryInfoKHR = Just f
     | Just Refl <- eqT @e @PipelineCreateFlags2CreateInfoKHR = Just f
+    | Just Refl <- eqT @e @ComputePipelineIndirectBufferInfoNV = Just f
     | otherwise = Nothing
 
 instance ( Extendss ComputePipelineCreateInfo es
@@ -2347,6 +2445,7 @@
 --     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_clamp_control.PipelineViewportDepthClampControlCreateInfoEXT',
 --     'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT',
 --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV',
 --     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV',
@@ -2400,6 +2499,7 @@
   getNext PipelineViewportStateCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineViewportStateCreateInfo e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @PipelineViewportDepthClampControlCreateInfoEXT = Just f
     | Just Refl <- eqT @e @PipelineViewportDepthClipControlCreateInfoEXT = Just f
     | Just Refl <- eqT @e @PipelineViewportCoarseSampleOrderStateCreateInfoNV = Just f
     | Just Refl <- eqT @e @PipelineViewportShadingRateImageStateCreateInfoNV = Just f
@@ -2811,7 +2911,7 @@
     -- <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'.
+    -- @sampleShadingEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE'.
     minSampleShading :: Float
   , -- | @pSampleMask@ is a pointer to an array of
     -- 'Vulkan.Core10.FundamentalTypes.SampleMask' values used in the
@@ -3272,9 +3372,9 @@
     -- '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
+    -- set or the
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-advancedBlendCoherentOperations advancedBlendCoherentOperations>
-    -- is not enabled on the device.
+    -- feature is not enabled.
     attachmentCount :: Word32
   , -- | @pAttachments@ is a pointer to an array of
     -- 'PipelineColorBlendAttachmentState' structures defining blend state for
@@ -3285,9 +3385,9 @@
     -- '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
+    -- set or the
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-advancedBlendCoherentOperations advancedBlendCoherentOperations>
-    -- is not enabled on the device.
+    -- feature is not enabled.
     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,
@@ -3789,8 +3889,6 @@
 -- 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
@@ -3855,7 +3953,7 @@
 --
 --     -   If
 --         'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
---         was not specified, the full pipeline layout must be specified.
+--         was not specified, the full pipeline layout /must/ be specified.
 --
 -- -   'PipelineViewportStateCreateInfo'
 --
@@ -3896,7 +3994,7 @@
 --
 --     -   If
 --         'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
---         was not specified, the full pipeline layout must be specified.
+--         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>
@@ -3918,11 +4016,11 @@
 -- -   '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'
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.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'
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
 --     flag
 --
 -- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
@@ -3930,8 +4028,7 @@
 -- 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
+-- @rasterizerDiscardEnable@ is '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>.
@@ -3959,9 +4056,9 @@
 --
 -- -   'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'
 --
--- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+-- -   'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
 --
--- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+-- -   'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
 --
 -- -   'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
 --
@@ -3971,13 +4068,16 @@
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
 --     flags
 --
+-- -   Inclusion\/omission of the
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
 -- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'
 --
 -- 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
+-- @rasterizerDiscardEnable@ is '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>.
@@ -4034,9 +4134,9 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>
 -- with this union.
 --
--- If a
+-- If the @pNext@ chain includes a
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
--- structure is present in the @pNext@ chain,
+-- structure,
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@
 -- from that structure is used instead of @flags@ from this structure.
 --
@@ -4045,7 +4145,7 @@
 -- -   #VUID-VkGraphicsPipelineCreateInfo-None-09497# If the @pNext@ chain
 --     does not include a
 --     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
---     structure, @flags@ must be a valid combination of
+--     structure, @flags@ /must/ be a valid combination of
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
 --     values
 --
@@ -4070,8 +4170,12 @@
 --
 -- -   #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
+--     /must/ match the shader stage
 --
+-- -   #VUID-VkGraphicsPipelineCreateInfo-layout-10069# If a push constant
+--     block is declared in a shader, the block must be contained inside
+--     the push constant range in @layout@ that matches the stage
+--
 -- -   #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
@@ -4110,6 +4214,16 @@
 --     or
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT')
 --
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-09631# 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@ contains both
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     and
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT',
+--     then the mesh shader’s entry point /must/ not declare a variable
+--     with a @DrawIndex@ @BuiltIn@ decoration
+--
 -- -   #VUID-VkGraphicsPipelineCreateInfo-TaskNV-07063# The shader stages
 --     for
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
@@ -4204,11 +4318,12 @@
 -- -   #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
+--     @PointMode@ @Execution@ @Mode@, and the
 --     <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
+--     feature is enabled, a @PointSize@ decorated variable /must/ be
+--     written to if the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
---     is not enabled
+--     feature is not enabled
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-topology-08773# If the pipeline
 --     is being created with a @Vertex@ @Execution@ @Model@ and no
@@ -4220,38 +4335,39 @@
 --     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
+--     variable /must/ be written to if the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
---     is not enabled
+--     feature is not enabled
 --
--- -   #VUID-VkGraphicsPipelineCreateInfo-maintenance5-08775# If
+-- -   #VUID-VkGraphicsPipelineCreateInfo-maintenance5-08775# If the
 --     <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
+--     feature 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
+--     @PointMode@ @Execution@ @Mode@, and the
 --     <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
+--     feature 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
+--     @Model@, uses the @OutputPoints@ @Execution@ @Mode@, and the
 --     <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
+--     feature is enabled, a @PointSize@ decorated variable /must/ be
+--     written to for every vertex emitted if the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
---     is not enabled
+--     feature is not enabled
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-Geometry-07726# If the pipeline
 --     is being created with a @Geometry@ @Execution@ @Model@, uses the
---     @OutputPoints@ @Execution@ @Mode@, and
+--     @OutputPoints@ @Execution@ @Mode@, and the
 --     <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
+--     feature is not enabled, a @PointSize@ decorated variable /must/ not
+--     be written to
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00738# If the pipeline
 --     requires
@@ -4337,11 +4453,12 @@
 --     'Vulkan.Core10.FundamentalTypes.FALSE'
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07609# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the pipeline is
+--     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 the @pColorBlendState@ pointer is not @NULL@, and the subpass
---     uses color attachments, the @attachmentCount@ member of
+--     the @pColorBlendState@ pointer is not @NULL@, the @attachmentCount@
+--     member of @pColorBlendState@ is not ignored, and the subpass uses
+--     color attachments, the @attachmentCount@ member of
 --     @pColorBlendState@ /must/ be equal to the @colorAttachmentCount@
 --     used to create @subpass@
 --
@@ -4377,13 +4494,9 @@
 --     '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
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pViewportState-null related dynamic state is 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
@@ -4397,9 +4510,9 @@
 --     '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
+--     dynamic states is not set, or the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     is enabled on the device and
+--     feature is enabled 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
@@ -4421,18 +4534,10 @@
 --     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
+--     and @subpass@ uses a depth\/stencil attachment, and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pDepthStencilState-null related dynamic state is 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
@@ -4443,16 +4548,9 @@
 --     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
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pColorBlendState-null related dynamic state is not set>,
+--     @pColorBlendState@ /must/ be a valid pointer to a valid
+--     'PipelineColorBlendStateCreateInfo' structure
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754# If the
 --     pipeline requires
@@ -4627,13 +4725,6 @@
 --     @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
@@ -4642,14 +4733,6 @@
 --     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
@@ -4752,8 +4835,9 @@
 --     /must/ be a valid pointer to a valid
 --     'PipelineVertexInputStateCreateInfo' structure
 --
--- -   #VUID-VkGraphicsPipelineCreateInfo-Input-07904# If the pipeline is
---     being created with
+-- -   #VUID-VkGraphicsPipelineCreateInfo-Input-07904# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeRobustness vertexAttributeRobustness>
+--     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-vertex-input vertex input state>
 --     and @pVertexInputState@ is not dynamic, then all variables with the
 --     @Input@ storage class decorated with @Location@ in the @Vertex@
@@ -4798,15 +4882,9 @@
 -- -   #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
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pInputAssemblyState-null related dynamic state is not set>,
+--     @pInputAssemblyState@ /must/ be a valid pointer to a valid
 --     'PipelineInputAssemblyStateCreateInfo' structure
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-pInputAssemblyState-09032# If
@@ -4894,6 +4972,37 @@
 --     'Vulkan.Extensions.VK_KHR_line_rasterization.PipelineRasterizationLineStateCreateInfoKHR'
 --     /must/ be in the range [1,256]
 --
+-- -   #VUID-VkGraphicsPipelineCreateInfo-shaderMeshEnqueue-10187# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderMeshEnqueue shaderMeshEnqueue>
+--     feature is not enabled, shaders specified by @pStages@ /must/ not
+--     declare the @ShaderEnqueueAMDX@ capability
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-10188# If @flags@ does not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR',
+--     shaders specified by @pStages@ /must/ not declare the
+--     @ShaderEnqueueAMDX@ capability
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-10189# If any shader
+--     stages in @pStages@ declare the @ShaderEnqueueAMDX@ capability,
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX'
+--     and
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_LIBRARY_BIT_KHR'
+--     /must/ be included in @flags@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-10190# If
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX'
+--     is included in @flags@, 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>,
+--     there /must/ not be a task or vertex shader specified in @pStages@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-10191# If
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX'
+--     is included in @flags@, all elements of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX'
+--
 -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03372# @flags@ /must/ not
 --     include
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'
@@ -5025,7 +5134,7 @@
 -- -   #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>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommandsNV ::deviceGeneratedCommands>
 --     feature /must/ be enabled
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-02966# If the pipeline
@@ -5056,6 +5165,19 @@
 --     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@
 --     /must/ be greater than @0@
 --
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-11000# If @flags@ includes
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT',
+--     then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-11001# 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.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT',
+--     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>
@@ -5623,10 +5745,11 @@
 --     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
+--     and any element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     is 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_LOGIC_OP_ENABLE_EXT',
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT',
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT',
@@ -5667,15 +5790,6 @@
 --     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
@@ -5686,16 +5800,6 @@
 --     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
@@ -5741,9 +5845,9 @@
 --     <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'
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
 --     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV',
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV',
 --     the @colorAttachmentCount@ member of that structure /must/ be equal
 --     to the value of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@
@@ -5780,9 +5884,9 @@
 --     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'
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
 --     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
 --     /must/ be valid
 --     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values
 --
@@ -5790,9 +5894,9 @@
 --     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'
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
 --     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
 --     is not 0, it /must/ be a valid
 --     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value
 --
@@ -5835,9 +5939,9 @@
 --     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@
+--     'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@
 --     is 'Vulkan.Core10.FundamentalTypes.TRUE' then
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@
+--     'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@
 --     /must/ also be 'Vulkan.Core10.FundamentalTypes.TRUE'
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06596# If
@@ -5849,7 +5953,7 @@
 --     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@
+--     'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@
 --     specified in both this pipeline and the library /must/ be equal
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06597# If one element
@@ -5860,7 +5964,7 @@
 --     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@
+--     'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@
 --     specified in both libraries /must/ be equal
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06598# If
@@ -5872,7 +5976,7 @@
 --     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@
+--     'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@
 --     specified in both this pipeline and the library /must/ be equal
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06599# If one element
@@ -5883,7 +5987,7 @@
 --     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@
+--     'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@
 --     specified in both libraries /must/ be equal
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-06600# If the pipeline
@@ -5894,21 +5998,29 @@
 --     @pStages@ /must/ be a valid pointer to an array of @stageCount@
 --     valid 'PipelineShaderStageCreateInfo' structures
 --
+-- -   #VUID-VkGraphicsPipelineCreateInfo-stageCount-09587# If the pipeline
+--     does not require
+--     <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 zero
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-06601# 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-pRasterizationState-null related dynamic state is not set>,
+--     @pRasterizationState@ /must/ be a valid pointer to a valid
+--     'PipelineRasterizationStateCreateInfo' structure
+--
 -- -   #VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039# 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, then @pMultisampleState@ /must/ be a valid pointer to a
---     valid 'PipelineMultisampleStateCreateInfo' structure
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pMultisampleState-null related dynamic state 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
@@ -5940,13 +6052,15 @@
 -- -   #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, and if the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderMeshEnqueue shaderMeshEnqueue>
 --     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>,
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06608# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderMeshEnqueue shaderMeshEnqueue>
+--     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-complete all possible state subsets>,
 --     @flags@ /must/ not include
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
 --
@@ -6299,9 +6413,9 @@
 --     '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
+--     dynamic states is not set, or the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     is enabled on the device and
+--     feature is enabled 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
@@ -6317,9 +6431,9 @@
 --     '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
+--     dynamic states is not set, or the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     is enabled on the device and
+--     feature is enabled 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
@@ -6382,8 +6496,8 @@
 --     '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@
+--     @pMultisampleState@ /must/ be /identically defined/ to that used to
+--     create the library
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-09567# If one element
 --     of
@@ -6394,7 +6508,7 @@
 --     'Vulkan.Core10.FundamentalTypes.TRUE', 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',
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
 --     @pMultisampleState@ /must/ be /identically defined/ to that used to
 --     create the library
 --
@@ -6699,6 +6813,17 @@
 --     @pDynamicStates@ member of @pDynamicState@ set to
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
 --
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-09639# 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>,
+--     @pDynamicState@ includes
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT',
+--     and @pDynamicState@ does not include
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT',
+--     @pRasterizationState@ /must/ include a
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'
+--     in its @pNext@ chain
+--
 -- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipEnable-07384#
 --     If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipEnable extendedDynamicState3DepthClipEnable>
@@ -6832,10 +6957,10 @@
 --     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
+--     and if the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiviewPerViewViewports multiviewPerViewViewports>
+--     feature 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@
 --
@@ -6845,10 +6970,10 @@
 --     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
+--     and if the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiviewPerViewViewports multiviewPerViewViewports>
+--     feature 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@
 --
@@ -6916,7 +7041,7 @@
 --     '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>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>
 --     or include that state in a linked pipeline library
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-08900# If
@@ -7163,12 +7288,26 @@
 --     <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>,
---     and the value of @renderPass@ is
---     'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     the value of @renderPass@ is
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--     is included,
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'::@colorAttachmentCount@
 --     /must/ be equal to
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@
 --
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-09652# 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
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output state>,
+--     the value of @renderPass@ is
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--     is not included, the fragment shader /must/ not contain any input
+--     attachments with a @InputAttachmentIndex@ greater than or equal to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@
+--
 -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-09532# 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 state>,
@@ -7186,11 +7325,12 @@
 -- -   #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_AMD_mixed_attachment_samples.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_NVX_multiview_per_view_attributes.MultiviewPerViewAttributesInfoNVX',
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR',
 --     'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',
 --     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR',
 --     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',
@@ -7256,8 +7396,9 @@
     -- '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
+    -- #pipelines-pInputAssemblyState-null# 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
@@ -7273,17 +7414,19 @@
     -- 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
+    -- structure defining viewport state used when rasterization is enabled.
+    -- #pipelines-pViewportState-null# 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
+    -- state. #pipelines-pRasterizationState-null# 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',
@@ -7296,15 +7439,16 @@
     rasterizationState :: Maybe (SomeStruct PipelineRasterizationStateCreateInfo)
   , -- | @pMultisampleState@ is a pointer to a
     -- 'PipelineMultisampleStateCreateInfo' structure defining multisample
-    -- state used when rasterization is enabled. If the
+    -- state used when rasterization is enabled.
+    -- #pipelines-pMultisampleState-null# 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
+    -- dynamic states set, and either the
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
-    -- is disabled on the device or
+    -- feature is not enabled or
     -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
     -- is set, in which case
     -- 'PipelineMultisampleStateCreateInfo'::@sampleShadingEnable@ is assumed
@@ -7313,7 +7457,8 @@
   , -- | @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
+    -- attachments accessed during rendering.
+    -- #pipelines-pDepthStencilState-null# 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',
@@ -7327,7 +7472,8 @@
     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
+    -- for any color attachments accessed during rendering.
+    -- #pipelines-pColorBlendState-null# 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',
@@ -7391,6 +7537,7 @@
     | 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 @PipelineBinaryInfoKHR = Just f
     | Just Refl <- eqT @e @PipelineCreateFlags2CreateInfoKHR = Just f
     | otherwise = Nothing
 
diff --git a/src/Vulkan/Core10/PipelineCache.hs b/src/Vulkan/Core10/PipelineCache.hs
--- a/src/Vulkan/Core10/PipelineCache.hs
+++ b/src/Vulkan/Core10/PipelineCache.hs
@@ -90,8 +90,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Applications /can/ track and manage the total host memory size of a
 -- pipeline cache object using the @pAllocator@. Applications /can/ limit
 -- the amount of data retrieved from a pipeline cache object in
@@ -116,8 +114,6 @@
 -- all commands that modify the returned pipeline cache object /must/ be
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>.
 --
--- Note
---
 -- Implementations /should/ make every effort to limit any critical
 -- sections to the actual accesses to the cache, which is expected to be
 -- significantly shorter than the duration of the @vkCreate*Pipelines@
@@ -290,13 +286,13 @@
 --
 -- If @pData@ is @NULL@, then the maximum size of the data that /can/ be
 -- retrieved from the pipeline cache, in bytes, is returned in @pDataSize@.
--- Otherwise, @pDataSize@ /must/ point to a variable set by the user to the
--- size of the buffer, in bytes, pointed to by @pData@, and on return the
--- variable is overwritten with the amount of data actually written to
--- @pData@. If @pDataSize@ is less than the maximum size that /can/ be
--- retrieved by the pipeline cache, at most @pDataSize@ bytes will be
--- written to @pData@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be
--- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate
+-- Otherwise, @pDataSize@ /must/ point to a variable set by the application
+-- to the size of the buffer, in bytes, pointed to by @pData@, and on
+-- return the variable is overwritten with the amount of data actually
+-- written to @pData@. If @pDataSize@ is less than the maximum size that
+-- /can/ be retrieved by the pipeline cache, at most @pDataSize@ bytes will
+-- be written to @pData@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will
+-- be returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate
 -- that not all of the pipeline cache was returned.
 --
 -- Any data written to @pData@ is valid and /can/ be provided as the
@@ -397,8 +393,6 @@
 -- | vkMergePipelineCaches - Combine the data stores of pipeline caches
 --
 -- = Description
---
--- Note
 --
 -- The details of the merge operation are implementation-dependent, but
 -- implementations /should/ merge the contents of the specified pipelines
diff --git a/src/Vulkan/Core10/PipelineLayout.hs b/src/Vulkan/Core10/PipelineLayout.hs
--- a/src/Vulkan/Core10/PipelineLayout.hs
+++ b/src/Vulkan/Core10/PipelineLayout.hs
@@ -242,6 +242,8 @@
 -- = 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_device_generated_commands.IndirectCommandsPushConstantTokenEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectExecutionSetShaderInfoEXT',
 -- 'PipelineLayoutCreateInfo',
 -- 'Vulkan.Extensions.VK_EXT_shader_object.ShaderCreateInfoEXT',
 -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags'
@@ -484,8 +486,10 @@
 --     @pSetLayouts@ /must/ be less than or equal to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDescriptorSetUniformBuffers@
 --
--- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-03030# The total
---     number of descriptors in descriptor set layouts created without the
+-- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-03030# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is not enabled, the total number of descriptors in
+--     descriptor set layouts created without the
 --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'
 --     bit set with a @descriptorType@ of
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
@@ -493,6 +497,17 @@
 --     @pSetLayouts@ /must/ be less than or equal to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDescriptorSetUniformBuffersDynamic@
 --
+-- -   #VUID-VkPipelineLayoutCreateInfo-maintenance7-10003# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is enabled, the total number of descriptors in descriptor
+--     set layouts created without the
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'
+--     bit set with a @descriptorType@ of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+--     accessible across all shader stages and across all elements of
+--     @pSetLayouts@ /must/ be less than or equal to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDescriptorSetTotalUniformBuffersDynamic ::maxDescriptorSetTotalUniformBuffersDynamic>
+--
 -- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-03031# The total
 --     number of descriptors in descriptor set layouts created without the
 --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'
@@ -502,8 +517,10 @@
 --     @pSetLayouts@ /must/ be less than or equal to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDescriptorSetStorageBuffers@
 --
--- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-03032# The total
---     number of descriptors in descriptor set layouts created without the
+-- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-03032# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is not enabled, the total number of descriptors in
+--     descriptor set layouts created without the
 --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'
 --     bit set with a @descriptorType@ of
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
@@ -511,6 +528,37 @@
 --     @pSetLayouts@ /must/ be less than or equal to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDescriptorSetStorageBuffersDynamic@
 --
+-- -   #VUID-VkPipelineLayoutCreateInfo-maintenance7-10004# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is enabled, the total number of descriptors in descriptor
+--     set layouts created without the
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'
+--     bit set with a @descriptorType@ of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+--     accessible across all shader stages and across all elements of
+--     @pSetLayouts@ /must/ be less than or equal to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDescriptorSetTotalStorageBuffersDynamic ::maxDescriptorSetTotalStorageBuffersDynamic>
+--
+-- -   #VUID-VkPipelineLayoutCreateInfo-None-10005# The total number of
+--     descriptors in descriptor set layouts created without the
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'
+--     bit set with a @descriptorType@ of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+--     accessible across all shader stages and across all elements of
+--     @pSetLayouts@ /must/ be less than or equal to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDescriptorSetTotalBuffersDynamic ::maxDescriptorSetTotalBuffersDynamic>
+--
+-- -   #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-10006# The total number
+--     of descriptors of the type
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+--     accessible across all shader stages and across all elements of
+--     @pSetLayouts@ /must/ be less than or equal to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDescriptorSetUpdateAfterBindTotalBuffersDynamic ::maxDescriptorSetUpdateAfterBindTotalBuffersDynamic>
+--
 -- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-03033# The total
 --     number of descriptors in descriptor set layouts created without the
 --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'
@@ -567,13 +615,22 @@
 --     @pSetLayouts@ /must/ be less than or equal to
 --     'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties'::@maxDescriptorSetUpdateAfterBindUniformBuffers@
 --
--- -   #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03038# The total number
---     of descriptors of the type
+-- -   #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03038# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is not enabled, the total number of descriptors of the type
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
 --     accessible across all shader stages and across all elements of
 --     @pSetLayouts@ /must/ be less than or equal to
---     'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties'::@maxDescriptorSetUpdateAfterBindUniformBuffersDynamic@
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDescriptorSetUpdateAfterBindUniformBuffersDynamic@
 --
+-- -   #VUID-VkPipelineLayoutCreateInfo-maintenance7-10007# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is enabled, the total number of descriptors of the type
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+--     accessible across all shader stages and across all elements of
+--     @pSetLayouts@ /must/ be less than or equal to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic ::maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic>
+--
 -- -   #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03039# The total number
 --     of descriptors of the type
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'
@@ -581,13 +638,22 @@
 --     @pSetLayouts@ /must/ be less than or equal to
 --     'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties'::@maxDescriptorSetUpdateAfterBindStorageBuffers@
 --
--- -   #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03040# The total number
---     of descriptors of the type
+-- -   #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03040# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is not enabled, the total number of descriptors of the type
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
 --     accessible across all shader stages and across all elements of
 --     @pSetLayouts@ /must/ be less than or equal to
---     'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties'::@maxDescriptorSetUpdateAfterBindStorageBuffersDynamic@
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDescriptorSetUpdateAfterBindStorageBuffersDynamic@
 --
+-- -   #VUID-VkPipelineLayoutCreateInfo-maintenance7-10008# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is enabled, the total number of descriptors of the type
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+--     accessible across all shader stages and across all elements of
+--     @pSetLayouts@ /must/ be less than or equal to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic ::maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic>
+--
 -- -   #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03041# The total number
 --     of descriptors of the type
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
@@ -692,8 +758,9 @@
 --     bit set
 --
 -- -   #VUID-VkPipelineLayoutCreateInfo-graphicsPipelineLibrary-06753# If
+--     the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>
---     is not enabled, elements of @pSetLayouts@ /must/ be valid
+--     feature is not enabled, elements of @pSetLayouts@ /must/ be valid
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' objects
 --
 -- -   #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-08008# If any element
@@ -745,8 +812,6 @@
     -- pipeline layout. In addition to descriptor set layouts, a pipeline
     -- layout also describes how many push constants /can/ be accessed by each
     -- stage of the pipeline.
-    --
-    -- Note
     --
     -- Push constants represent a high speed path to modify constant data in
     -- pipelines that is expected to outperform memory-backed resource updates.
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
@@ -103,6 +103,14 @@
 
 -- | vkCreateQueryPool - Create a new query pool object
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCreateQueryPool-device-09663# @device@ /must/ support at
+--     least one queue family with one of the
+--     @VK_QUEUE_VIDEO_ENCODE_BIT_KHR@, @VK_QUEUE_VIDEO_DECODE_BIT_KHR@,
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', or
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' capabilities
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCreateQueryPool-device-parameter# @device@ /must/ be a valid
@@ -204,8 +212,6 @@
 --     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
 --     provided when @queryPool@ was created, @pAllocator@ /must/ be @NULL@
 --
--- Note
---
 -- Applications /can/ verify that @queryPool@ /can/ be destroyed by
 -- checking that 'getQueryPoolResults'() without the
 -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' flag
@@ -314,8 +320,6 @@
 -- written by this command are undefined unless otherwise specified for any
 -- of the results of the used query type.
 --
--- 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
@@ -338,9 +342,13 @@
 -- 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.
+-- wrap or saturate. If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+-- feature is enabled, for an unsigned integer query, the 32-bit result
+-- value /must/ be equal to the 32 least significant bits of the equivalent
+-- 64-bit result value. 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.
 --
 -- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is
 -- set, this command defines an execution dependency with any earlier
@@ -361,8 +369,6 @@
 -- 'Vulkan.Core10.Enums.Result.NOT_READY' if there are queries in the
 -- unavailable state.
 --
--- Note
---
 -- Applications /must/ take care to ensure that use of the
 -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' bit has
 -- the desired effect.
@@ -393,8 +399,6 @@
 -- A similar situation can arise with the
 -- @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ flag.
 --
--- Note
---
 -- Applications /can/ double-buffer query pool usage, with a pool per
 -- frame, and reset queries at the end of the frame in which they are read.
 --
@@ -458,7 +462,7 @@
 --     '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.
+--     result
 --
 -- -   #VUID-vkGetQueryPoolResults-queryType-03229# If the @queryType@ used
 --     to create @queryPool@ was
@@ -535,8 +539,8 @@
                        ("queryCount" ::: Word32)
                     -> -- | @dataSize@ is the size in bytes of the buffer pointed to by @pData@.
                        ("dataSize" ::: Word64)
-                    -> -- | @pData@ is a pointer to a user-allocated buffer where the results will
-                       -- be written
+                    -> -- | @pData@ is a pointer to an application-allocated buffer where the
+                       -- results will be written
                        ("data" ::: Ptr ())
                     -> -- | @stride@ is the stride in bytes between results for individual queries
                        -- within @pData@.
@@ -649,6 +653,14 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>
 --     and its @pNext@ chain
 --
+-- -   #VUID-VkQueryPoolCreateInfo-pNext-10248# If the @pNext@ chain
+--     includes a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>
+--     structure and its @videoCodecOperation@ member is
+--     @VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR@, then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-videoEncodeAV1 videoEncodeAV1>
+--     feature /must/ be enabled
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkQueryPoolCreateInfo-sType-sType# @sType@ /must/ be
@@ -664,6 +676,7 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileInfoKHR VkVideoDecodeH264ProfileInfoKHR>,
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileInfoKHR VkVideoDecodeH265ProfileInfoKHR>,
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeUsageInfoKHR VkVideoDecodeUsageInfoKHR>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeAV1ProfileInfoKHR VkVideoEncodeAV1ProfileInfoKHR>,
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileInfoKHR VkVideoEncodeH264ProfileInfoKHR>,
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileInfoKHR VkVideoEncodeH265ProfileInfoKHR>,
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeUsageInfoKHR VkVideoEncodeUsageInfoKHR>,
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
@@ -130,7 +130,7 @@
 --
 -- -   #VUID-vkGetDeviceQueue-flags-01841#
 --     'Vulkan.Core10.Device.DeviceQueueCreateInfo'::@flags@ /must/ have
---     been set to zero when @device@ was created
+--     been zero when @device@ was created
 --
 -- == Valid Usage (Implicit)
 --
@@ -319,9 +319,9 @@
 --
 -- -   #VUID-vkQueueSubmit-pSubmits-02207# If any element of
 --     @pSubmits->pCommandBuffers@ includes a
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire Queue Family Transfer Acquire Operation>,
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire Queue Family Ownership Transfer Acquire Operation>,
 --     there /must/ exist a previously submitted
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release Queue Family Transfer Release Operation>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release Queue Family Ownership Transfer Release Operation>
 --     on a queue in the queue family identified by the acquire operation,
 --     with parameters matching the acquire operation as defined in the
 --     definition of such
@@ -352,7 +352,7 @@
 --
 -- -   #VUID-vkQueueSubmit-queue-06448# If @queue@ was not created with
 --     'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT',
---     there /must/ be no element of @pSubmits@ that includes an
+--     there /must/ be no element of @pSubmits@ that includes a
 --     'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.ProtectedSubmitInfo'
 --     structure in its @pNext@ chain with @protectedSubmit@ equal to
 --     'Vulkan.Core10.FundamentalTypes.TRUE'
@@ -659,11 +659,11 @@
 --     feature is not enabled, @pWaitDstStageMask@ /must/ not contain
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-VkSubmitInfo-pWaitDstStageMask-07318# If neither the
+-- -   #VUID-VkSubmitInfo-pWaitDstStageMask-07318# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @pWaitDstStageMask@ /must/ not contain
+--     features are enabled, @pWaitDstStageMask@ /must/ not contain
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-VkSubmitInfo-pWaitDstStageMask-03937# If the
@@ -672,9 +672,9 @@
 --
 -- -   #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>
---     are enabled, @pWaitDstStageMask@ /must/ not contain
+--     extension or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
+--     feature are enabled, @pWaitDstStageMask@ /must/ not contain
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
 --
 -- -   #VUID-VkSubmitInfo-pCommandBuffers-00075# Each element of
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
@@ -110,6 +110,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCreateSampler-device-09668# @device@ /must/ support at least
+--     one queue family with one of the
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT' or
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' capabilities
+--
 -- -   #VUID-vkCreateSampler-maxSamplerAllocationCount-04110# There /must/
 --     be less than
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxSamplerAllocationCount@
@@ -276,7 +281,7 @@
 --
 -- = Description
 --
--- Mapping of OpenGL to Vulkan filter modes
+-- Mapping of OpenGL to Vulkan Filter Modes
 --
 -- @magFilter@ values of 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST' and
 -- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' directly correspond to
@@ -311,8 +316,6 @@
 -- member of the 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'
 -- structure.
 --
--- Note
---
 -- For historical reasons, if @maxSamplerAllocationCount@ is exceeded, some
 -- implementations may return
 -- 'Vulkan.Core10.Enums.Result.ERROR_TOO_MANY_OBJECTS'. Exceeding this
@@ -407,21 +410,21 @@
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>
 --     is enabled and the @pNext@ chain includes a
 --     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'
---     structure, then the sampler reduction mode /must/ be set to
+--     structure, then the sampler reduction mode /must/ be
 --     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE'
 --
--- -   #VUID-VkSamplerCreateInfo-pNext-06726# If
+-- -   #VUID-VkSamplerCreateInfo-pNext-06726# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerFilterMinmax samplerFilterMinmax>
---     is not enabled and the @pNext@ chain includes a
+--     feature is not enabled and the @pNext@ chain includes a
 --     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'
---     structure, then the sampler reduction mode /must/ be set to
+--     structure, then the sampler reduction mode /must/ be
 --     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE'
 --
--- -   #VUID-VkSamplerCreateInfo-addressModeU-01079# If
+-- -   #VUID-VkSamplerCreateInfo-addressModeU-01079# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerMirrorClampToEdge samplerMirrorClampToEdge>
---     is not enabled, and if the @VK_KHR_sampler_mirror_clamp_to_edge@
---     extension is not enabled, @addressModeU@, @addressModeV@ and
---     @addressModeW@ /must/ not be
+--     feature is not enabled, and if the
+--     @VK_KHR_sampler_mirror_clamp_to_edge@ extension is not enabled,
+--     @addressModeU@, @addressModeV@ and @addressModeW@ /must/ not be
 --     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE'
 --
 -- -   #VUID-VkSamplerCreateInfo-compareEnable-01080# If @compareEnable@ is
@@ -435,8 +438,8 @@
 -- -   #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.Extensions.VK_IMG_filter_cubic.FILTER_CUBIC_IMG', 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'
@@ -697,11 +700,12 @@
     borderColor :: BorderColor
   , -- | #samplers-unnormalizedCoordinates# @unnormalizedCoordinates@ controls
     -- whether to use unnormalized or normalized texel coordinates to address
-    -- texels of the image. When set to 'Vulkan.Core10.FundamentalTypes.TRUE',
-    -- the range of the image coordinates used to lookup the texel is in the
-    -- range of zero to the image size in each dimension. When set to
-    -- 'Vulkan.Core10.FundamentalTypes.FALSE' the range of image coordinates is
-    -- zero to one.
+    -- texels of the image. When @unnormalizedCoordinates@ is
+    -- 'Vulkan.Core10.FundamentalTypes.TRUE', the range of the image
+    -- coordinates used to lookup the texel is in the range of zero to the
+    -- image size in each dimension. When @unnormalizedCoordinates@ is
+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', the range of image coordinates
+    -- is zero to one.
     --
     -- When @unnormalizedCoordinates@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
     -- images the sampler is used with in the shader have the following
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
@@ -79,6 +79,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ShaderModuleValidationCacheCreateInfoEXT)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_features (ValidationFeaturesEXT)
 import Vulkan.Exception (VulkanException(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
@@ -101,8 +102,6 @@
 -- 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.
@@ -115,9 +114,12 @@
 --
 -- -   #VUID-vkCreateShaderModule-pCreateInfo-06904# If @pCreateInfo@ is
 --     not @NULL@, @pCreateInfo->pNext@ /must/ be @NULL@ or a pointer to a
---     'Vulkan.Extensions.VK_EXT_validation_cache.ShaderModuleValidationCacheCreateInfoEXT'
---     structure
+--     valid instance of
 --
+--     -   'Vulkan.Extensions.VK_EXT_validation_cache.ShaderModuleValidationCacheCreateInfoEXT'
+--
+--     -   'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT'
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCreateShaderModule-device-parameter# @device@ /must/ be a
@@ -385,6 +387,7 @@
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ShaderModuleCreateInfo e => b) -> Maybe b
   extends _ f
     | Just Refl <- eqT @e @ShaderModuleValidationCacheCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @ValidationFeaturesEXT = Just f
     | otherwise = Nothing
 
 instance ( Extendss ShaderModuleCreateInfo es
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
@@ -142,20 +142,18 @@
 -- memory requirements available is returned in
 -- @pSparseMemoryRequirementCount@. Otherwise,
 -- @pSparseMemoryRequirementCount@ /must/ point to a variable set by the
--- user to the number of elements in the @pSparseMemoryRequirements@ array,
--- and on return the variable is overwritten with the number of structures
--- actually written to @pSparseMemoryRequirements@. If
+-- application to the number of elements in the @pSparseMemoryRequirements@
+-- array, and on return the variable is overwritten with the number of
+-- structures actually written to @pSparseMemoryRequirements@. If
 -- @pSparseMemoryRequirementCount@ is less than the number of sparse memory
 -- requirements available, at most @pSparseMemoryRequirementCount@
 -- structures will be written.
 --
 -- If the image was not created with
 -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
--- then @pSparseMemoryRequirementCount@ will be set to zero and
+-- then @pSparseMemoryRequirementCount@ will be zero and
 -- @pSparseMemoryRequirements@ will not be written to.
 --
--- Note
---
 -- It is legal for an implementation to report a larger value in
 -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements'::@size@ than would
 -- be obtained by adding together memory sizes for all
@@ -238,16 +236,17 @@
 --
 -- If @pProperties@ is @NULL@, then the number of sparse format 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 sparse format properties
--- available, at most @pPropertyCount@ structures will be written.
+-- /must/ point to a variable set by the application 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 sparse
+-- format properties available, at most @pPropertyCount@ structures will be
+-- written.
 --
 -- If
 -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'
--- is not supported for the given arguments, @pPropertyCount@ will be set
--- to zero upon return, and no data will be written to @pProperties@.
+-- is not supported for the given arguments, @pPropertyCount@ will be zero
+-- upon return, and no data will be written to @pProperties@.
 --
 -- Multiple aspects are returned for depth\/stencil images that are
 -- implemented as separate planes by the implementation. The depth and
@@ -780,9 +779,10 @@
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association>
 --
 -- -   #VUID-VkSparseMemoryBind-resourceOffset-09491# If the resource being
---     bound is a 'Vulkan.Core10.Handles.Buffer', @resourceOffset@ and
---     @memoryOffset@ /must/ be an integer multiple of the @alignment@ of
---     the 'Vulkan.Core10.MemoryManagement.MemoryRequirements' structure
+--     bound is a 'Vulkan.Core10.Handles.Buffer', @resourceOffset@,
+--     @memoryOffset@ and @size@ /must/ be an integer multiple of the
+--     @alignment@ of the
+--     'Vulkan.Core10.MemoryManagement.MemoryRequirements' structure
 --     returned from a call to
 --     'Vulkan.Core10.MemoryManagement.getBufferMemoryRequirements' with
 --     the buffer resource
@@ -933,10 +933,6 @@
 --     command’s @image@, as described in section
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association>
 --
--- -   #VUID-VkSparseImageMemoryBind-subresource-01106# @subresource@
---     /must/ be a valid image subresource for @image@ (see
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views>)
---
 -- -   #VUID-VkSparseImageMemoryBind-offset-01107# @offset.x@ /must/ be a
 --     multiple of the sparse image block width
 --     ('SparseImageFormatProperties'::@imageGranularity.width@) of the
@@ -1150,6 +1146,34 @@
 -- | VkSparseImageOpaqueMemoryBindInfo - Structure specifying sparse image
 -- opaque memory bind information
 --
+-- = Description
+--
+-- This structure is normally used to bind memory to fully-resident sparse
+-- images or for mip tail regions of partially resident images. However, it
+-- /can/ also be used to bind memory for the entire binding range of
+-- partially resident images.
+--
+-- If the @pBinds@[i].flags of an element /i/ of @pBinds@ does not contain
+-- 'Vulkan.Core10.Enums.SparseMemoryBindFlagBits.SPARSE_MEMORY_BIND_METADATA_BIT',
+-- the @resourceOffset@ is in the range [0,
+-- 'Vulkan.Core10.MemoryManagement.MemoryRequirements'::@size@), This range
+-- includes data from all aspects of the image, including metadata. For
+-- most implementations this will probably mean that the @resourceOffset@
+-- is a simple device address offset within the resource. It is possible
+-- for an application to bind a range of memory that includes both resource
+-- data and metadata. However, the application would not know what part of
+-- the image the memory is used for, or if any range is being used for
+-- metadata.
+--
+-- If the @pBinds@[i].flags of an element /i/ of @pBinds@ contains
+-- 'Vulkan.Core10.Enums.SparseMemoryBindFlagBits.SPARSE_MEMORY_BIND_METADATA_BIT',
+-- the binding range specified /must/ be within the mip tail region of the
+-- metadata aspect. In this case the @resourceOffset@ is not /required/ to
+-- be a simple device address offset within the resource. However, it /is/
+-- defined to be within [@imageMipTailOffset@, @imageMipTailOffset@ +
+-- @imageMipTailSize@) for the metadata aspect. See 'SparseMemoryBind' for
+-- the full constraints on binding region with this flag present.
+--
 -- == Valid Usage
 --
 -- -   #VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-01103# If the @flags@
@@ -1229,6 +1253,11 @@
 -- -   #VUID-VkSparseImageMemoryBindInfo-subresource-01723# The
 --     @subresource.arrayLayer@ member of each element of @pBinds@ /must/
 --     be less than the @arrayLayers@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created
+--
+-- -   #VUID-VkSparseImageMemoryBindInfo-subresource-01106# The
+--     @subresource.aspectMask@ member of each element of @pBinds@ /must/
+--     be valid for the @format@ specified in
 --     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created
 --
 -- -   #VUID-VkSparseImageMemoryBindInfo-image-02901# @image@ /must/ have
diff --git a/src/Vulkan/Core11/DeviceInitialization.hs b/src/Vulkan/Core11/DeviceInitialization.hs
--- a/src/Vulkan/Core11/DeviceInitialization.hs
+++ b/src/Vulkan/Core11/DeviceInitialization.hs
@@ -42,9 +42,7 @@
 --
 -- = Description
 --
--- Note
---
--- The intended behaviour of 'enumerateInstanceVersion' is that an
+-- The intended behavior of 'enumerateInstanceVersion' is that an
 -- implementation /should/ not need to perform memory allocations and
 -- /should/ unconditionally return 'Vulkan.Core10.Enums.Result.SUCCESS'.
 -- The loader, and any enabled layers, /may/ return
diff --git a/src/Vulkan/Core11/Enums/CommandPoolTrimFlags.hs b/src/Vulkan/Core11/Enums/CommandPoolTrimFlags.hs
--- a/src/Vulkan/Core11/Enums/CommandPoolTrimFlags.hs
+++ b/src/Vulkan/Core11/Enums/CommandPoolTrimFlags.hs
@@ -23,6 +23,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>,
+-- 'Vulkan.Core10.FundamentalTypes.Flags',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance1.trimCommandPool',
 -- 'Vulkan.Extensions.VK_KHR_maintenance1.trimCommandPoolKHR'
 newtype CommandPoolTrimFlags = CommandPoolTrimFlags Flags
diff --git a/src/Vulkan/Core11/Enums/DescriptorUpdateTemplateCreateFlags.hs b/src/Vulkan/Core11/Enums/DescriptorUpdateTemplateCreateFlags.hs
--- a/src/Vulkan/Core11/Enums/DescriptorUpdateTemplateCreateFlags.hs
+++ b/src/Vulkan/Core11/Enums/DescriptorUpdateTemplateCreateFlags.hs
@@ -23,7 +23,8 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>,
--- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateCreateInfo'
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateCreateInfo',
+-- 'Vulkan.Core10.FundamentalTypes.Flags'
 newtype DescriptorUpdateTemplateCreateFlags = DescriptorUpdateTemplateCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
diff --git a/src/Vulkan/Core11/Enums/ExternalFenceHandleTypeFlagBits.hs b/src/Vulkan/Core11/Enums/ExternalFenceHandleTypeFlagBits.hs
--- a/src/Vulkan/Core11/Enums/ExternalFenceHandleTypeFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/ExternalFenceHandleTypeFlagBits.hs
@@ -43,7 +43,7 @@
 -- | 'EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT'          | No restriction                                                                                             | No restriction                                                                                             |
 -- +---------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
 --
--- External fence handle types compatibility
+-- External Fence Handle Types Compatibility
 --
 -- = See Also
 --
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
@@ -73,9 +73,7 @@
 -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX'               | No restriction                                                                                             | No restriction                                                                                             |
 -- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
 --
--- External memory handle types compatibility
---
--- Note
+-- External Memory Handle Types Compatibility
 --
 -- The above table does not restrict the drivers and devices with which
 -- 'EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT' and
@@ -83,8 +81,6 @@
 -- be shared, as these handle types inherently mean memory that does not
 -- come from the same device, as they import memory from the host or a
 -- foreign device, respectively.
---
--- Note
 --
 -- Even though the above table does not restrict the drivers and devices
 -- with which 'EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT' /may/ be
diff --git a/src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs b/src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs
--- a/src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs
@@ -34,8 +34,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Handles of type 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT' generated
 -- by the implementation may represent either Linux Sync Files or Android
 -- Fences at the implementation’s discretion. Applications /should/ only
@@ -64,7 +62,7 @@
 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA' | No restriction                                                                                             | No restriction                                                                                             |
 -- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
 --
--- External semaphore handle types compatibility
+-- External Semaphore Handle Types Compatibility
 --
 -- = See Also
 --
diff --git a/src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs b/src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs
--- a/src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs
@@ -27,8 +27,6 @@
 --
 -- = Description
 --
--- Note
---
 -- The peer memory features of a memory heap also apply to any accesses
 -- that /may/ be performed during
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>.
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
@@ -61,8 +61,6 @@
 -- swizzle operation (controlled by
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'::@components@).
 --
--- Note
---
 -- For example, an “YUVA” 32-bit format comprising four 8-bit components
 -- can be implemented as 'Vulkan.Core10.Enums.Format.FORMAT_R8G8B8A8_UNORM'
 -- with a component mapping:
diff --git a/src/Vulkan/Core11/Handles.hs b/src/Vulkan/Core11/Handles.hs
--- a/src/Vulkan/Core11/Handles.hs
+++ b/src/Vulkan/Core11/Handles.hs
@@ -44,9 +44,10 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>,
 -- 'Vulkan.Extensions.VK_KHR_maintenance6.PushDescriptorSetWithTemplateInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetWithTemplateKHR',
+-- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.cmdPushDescriptorSetWithTemplateKHR',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.createDescriptorUpdateTemplate',
 -- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.createDescriptorUpdateTemplateKHR',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.destroyDescriptorUpdateTemplate',
@@ -68,6 +69,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>,
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.createSamplerYcbcrConversion',
diff --git a/src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs b/src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs
--- a/src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs
+++ b/src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs
@@ -333,8 +333,6 @@
 -- value from this structure as that used at device creation time in a
 -- 'Vulkan.Core10.Device.DeviceQueueCreateInfo' structure.
 --
--- Note
---
 -- Normally, if you create both protected-capable and non-protected-capable
 -- queues with the same family, they are treated as separate lists of
 -- queues and @queueIndex@ is relative to the start of the list of queues
@@ -360,7 +358,7 @@
 -- queues are instead located in the extended range described in the
 -- preceding two paragraphs.
 --
--- This behaviour will not be observed on any driver that has passed Vulkan
+-- This behavior will not be observed on any driver that has passed Vulkan
 -- conformance test suite version 1.3.3.0, or any subsequent version. This
 -- information can be found by querying
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.PhysicalDeviceDriverProperties'::@conformanceVersion@.
diff --git a/src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs b/src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs
--- a/src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs
+++ b/src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs
@@ -48,9 +48,9 @@
 --
 -- If @supportedOperations@ includes
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroup-quad >,
--- or
+-- or the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderSubgroupUniformControlFlow shaderSubgroupUniformControlFlow>
--- is enabled, @subgroupSize@ /must/ be greater than or equal to 4.
+-- feature is enabled, @subgroupSize@ /must/ be greater than or equal to 4.
 --
 -- If the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderQuadControl shaderQuadControl>
@@ -61,21 +61,19 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_subgroup_rotate VK_KHR_shader_subgroup_rotate>
 -- is supported, and the implementation advertises support with a
 -- 'Vulkan.Core10.ExtensionDiscovery.ExtensionProperties'::@specVersion@
--- greater than or equal to 2, and
+-- greater than or equal to 2, and the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderSubgroupRotate shaderSubgroupRotate>
--- is supported,
+-- feature is supported,
 -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SUBGROUP_FEATURE_ROTATE_BIT_KHR'
--- /must/ be returned in @subgroupSupportedOperations@. If
+-- /must/ be returned in @supportedOperations@. If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_subgroup_rotate VK_KHR_shader_subgroup_rotate>
 -- is supported, and the implementation advertises support with a
 -- 'Vulkan.Core10.ExtensionDiscovery.ExtensionProperties'::@specVersion@
--- greater than or equal to 2, and
+-- greater than or equal to 2, and the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderSubgroupRotateClustered shaderSubgroupRotateClustered>
--- is supported,
+-- feature is supported,
 -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR'
--- /must/ be returned in @subgroupSupportedOperations@.
---
--- Note
+-- /must/ be returned in @supportedOperations@.
 --
 -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SUBGROUP_FEATURE_ROTATE_BIT_KHR'
 -- and
@@ -100,14 +98,15 @@
 -- 'Vulkan.Core10.Enums.StructureType.StructureType',
 -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SubgroupFeatureFlags'
 data PhysicalDeviceSubgroupProperties = PhysicalDeviceSubgroupProperties
-  { -- | #extension-limits-subgroup-size# @subgroupSize@ is the default number of
+  { -- | #extension-limits-subgroupSize# @subgroupSize@ is the default number of
     -- invocations in each subgroup. @subgroupSize@ is at least 1 if any of the
     -- physical device’s queues support
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. @subgroupSize@ is
     -- a power-of-two.
     subgroupSize :: Word32
-  , -- | #limits-subgroup-supportedStages# @supportedStages@ is a bitfield of
+  , -- | #extension-limits-subgroupSupportedStages# @supportedStages@ is a
+    -- bitfield of
     -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' describing
     -- the shader stages that
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>
@@ -118,8 +117,9 @@
     -- set if any of the physical device’s queues support
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'.
     supportedStages :: ShaderStageFlags
-  , -- | #limits-subgroupSupportedOperations# @supportedOperations@ is a bitmask
-    -- of 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SubgroupFeatureFlagBits'
+  , -- | #extension-limits-subgroupSupportedOperations# @supportedOperations@ is
+    -- a bitmask of
+    -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SubgroupFeatureFlagBits'
     -- specifying the sets of
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>
     -- with
@@ -130,8 +130,8 @@
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'.
     supportedOperations :: SubgroupFeatureFlags
-  , -- | #limits-subgroup-quadOperationsInAllStages# @quadOperationsInAllStages@
-    -- is a boolean specifying whether
+  , -- | #extension-limits-subgroupQuadOperationsInAllStages#
+    -- @quadOperationsInAllStages@ is a boolean specifying whether
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-quad-operations quad group operations>
     -- are available in all stages, or are restricted to fragment and compute
     -- stages.
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
@@ -104,8 +104,6 @@
 -- be the return value of any one of the memory binding operations which
 -- did not return 'Vulkan.Core10.Enums.Result.SUCCESS'.
 --
--- Note
---
 -- If the 'bindBufferMemory2' command failed,
 -- 'Vulkan.Extensions.VK_KHR_maintenance6.BindMemoryStatusKHR' structures
 -- were not included in the @pNext@ chains of each element of @pBindInfos@,
@@ -185,8 +183,6 @@
 -- the 'Vulkan.Core10.Enums.Result.Result' returned by this command /must/
 -- be the return value of any one of the memory binding operations which
 -- did not return 'Vulkan.Core10.Enums.Result.SUCCESS'.
---
--- Note
 --
 -- If the 'bindImageMemory2' command failed,
 -- 'Vulkan.Extensions.VK_KHR_maintenance6.BindMemoryStatusKHR' structures
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
@@ -140,7 +140,7 @@
                                -> -- | @pCreateInfo@ is a pointer to a 'DescriptorUpdateTemplateCreateInfo'
                                   -- structure specifying the set of descriptors to update with a single call
                                   -- to
-                                  -- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetWithTemplateKHR'
+                                  -- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.cmdPushDescriptorSetWithTemplateKHR'
                                   -- or 'updateDescriptorSetWithTemplate'.
                                   DescriptorUpdateTemplateCreateInfo
                                -> -- | @pAllocator@ controls host memory allocation as described in the
@@ -311,7 +311,7 @@
 --     @descriptorUpdateTemplate@ /must/ have been created, allocated, or
 --     retrieved from @device@
 --
--- __API example__
+-- __API Example__
 --
 -- > struct AppBufferView {
 -- >     VkBufferView bufferView;
@@ -322,8 +322,8 @@
 -- > {
 -- >     VkDescriptorImageInfo  imageInfo;          // a single image info
 -- >     VkDescriptorBufferInfo bufferInfoArray[3]; // 3 buffer infos in an array
--- >     AppBufferView          bufferView[2];      // An application defined structure containing a bufferView
--- >     // ... some more application related data
+-- >     AppBufferView          bufferView[2];      // An application-defined structure containing a bufferView
+-- >     // ... some more application-related data
 -- > };
 -- >
 -- > const VkDescriptorUpdateTemplateEntry descriptorUpdateTemplateEntries[] =
@@ -442,9 +442,8 @@
 --     @dstArrayElement@ and @descriptorCount@ /must/ be less than or equal
 --     to the number of array elements in the descriptor set binding
 --     implicitly specified when using a descriptor update template to
---     update descriptors, and all applicable consecutive bindings, as
---     described by
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive>
+--     update descriptors, and all applicable
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive consecutive bindings>
 --
 -- -   #VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226# If
 --     @descriptor@ type is
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
@@ -272,17 +272,34 @@
 --
 -- -   #VUID-vkCmdDispatchBase-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
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-vkCmdDispatchBase-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
 -- -   #VUID-vkCmdDispatchBase-mipmapMode-04770# If a
 --     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
 --     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
@@ -290,6 +307,35 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
 --
+-- -   #VUID-vkCmdDispatchBase-mipmapMode-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDispatchBase-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDispatchBase-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
 -- -   #VUID-vkCmdDispatchBase-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>,
@@ -357,7 +403,7 @@
 --     '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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-cubicRangeClamp 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
@@ -374,7 +420,7 @@
 --     '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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-selectableCubicWeights 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
@@ -446,6 +492,13 @@
 --     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
+-- -   #VUID-vkCmdDispatchBase-None-10068# For each array of resources that
+--     is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
 -- -   #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
@@ -522,10 +575,10 @@
 --
 -- -   #VUID-vkCmdDispatchBase-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
+--     any calls to dynamic state setting commands for any state specified
+--     statically in the 'Vulkan.Core10.Handles.Pipeline' object bound to
+--     the pipeline bind point used by this command, since that pipeline
+--     was bound
 --
 -- -   #VUID-vkCmdDispatchBase-None-08609# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
@@ -565,11 +618,11 @@
 --
 -- -   #VUID-vkCmdDispatchBase-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
+--     feature 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-vkCmdDispatchBase-uniformBuffers-06935# If any stage of the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
@@ -641,7 +694,7 @@
 --     '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 ???>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-image-dimensions ???>
 --
 -- -   #VUID-vkCmdDispatchBase-format-07753# If a
 --     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
@@ -793,7 +846,7 @@
 --     @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.
+--     the image view’s format /must/ be a single-component format
 --
 -- -   #VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09217# If a
 --     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
@@ -805,6 +858,18 @@
 --     by this command /must/
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>
 --
+-- -   #VUID-vkCmdDispatchBase-None-09600# If a descriptor with type equal
+--     to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
 -- -   #VUID-vkCmdDispatchBase-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>
@@ -857,7 +922,10 @@
 -- -   #VUID-vkCmdDispatchBase-baseGroupX-00427# If any of @baseGroupX@,
 --     @baseGroupY@, or @baseGroupZ@ are not zero, then the bound compute
 --     pipeline /must/ have been created with the
---     'PIPELINE_CREATE_DISPATCH_BASE' flag
+--     'PIPELINE_CREATE_DISPATCH_BASE' flag or the bound compute shader
+--     object /must/ have been created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_DISPATCH_BASE_BIT_EXT'
+--     flag
 --
 -- == Valid Usage (Implicit)
 --
@@ -972,8 +1040,6 @@
 -- is 'Vulkan.Core10.FundamentalTypes.TRUE', then memory is only consumed
 -- for the devices in the device mask.
 --
--- Note
---
 -- In practice, most allocations on a multi-instance heap will be allocated
 -- across all physical devices. Unicast allocation support is an optional
 -- optimization for a minority of allocations.
@@ -1206,8 +1272,8 @@
 -- devices that /can/ ever be in the device mask in the command buffer.
 --
 -- If this structure is not present, the initial value of a command
--- buffer’s device mask is set to include all physical devices in the
--- logical device when the command buffer begins recording.
+-- buffer’s device mask includes all physical devices in the logical device
+-- when the command buffer begins recording.
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs
@@ -2,6 +2,8 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2"
 module Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2  ( BindBufferMemoryDeviceGroupInfo(..)
                                                                               , BindImageMemoryDeviceGroupInfo(..)
+                                                                              , BindBufferMemoryDeviceGroupInfoKHR
+                                                                              , BindImageMemoryDeviceGroupInfoKHR
                                                                               , StructureType(..)
                                                                               , ImageCreateFlagBits(..)
                                                                               , ImageCreateFlags
@@ -288,4 +290,12 @@
   zero = BindImageMemoryDeviceGroupInfo
            mempty
            mempty
+
+
+-- No documentation found for TopLevel "VkBindBufferMemoryDeviceGroupInfoKHR"
+type BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo
+
+
+-- No documentation found for TopLevel "VkBindImageMemoryDeviceGroupInfoKHR"
+type BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo
 
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs
@@ -88,15 +88,16 @@
 --
 -- If @pPhysicalDeviceGroupProperties@ is @NULL@, then the number of device
 -- groups available is returned in @pPhysicalDeviceGroupCount@. Otherwise,
--- @pPhysicalDeviceGroupCount@ /must/ point to a variable set by the user
--- to the number of elements in the @pPhysicalDeviceGroupProperties@ array,
--- and on return the variable is overwritten with the number of structures
--- actually written to @pPhysicalDeviceGroupProperties@. If
--- @pPhysicalDeviceGroupCount@ is less than the number of device groups
--- available, at most @pPhysicalDeviceGroupCount@ 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 device groups were returned.
+-- @pPhysicalDeviceGroupCount@ /must/ point to a variable set by the
+-- application to the number of elements in the
+-- @pPhysicalDeviceGroupProperties@ array, and on return the variable is
+-- overwritten with the number of structures actually written to
+-- @pPhysicalDeviceGroupProperties@. If @pPhysicalDeviceGroupCount@ is less
+-- than the number of device groups available, at most
+-- @pPhysicalDeviceGroupCount@ 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 device groups were returned.
 --
 -- Every physical device /must/ be in exactly one device group.
 --
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs
@@ -110,8 +110,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Handles of type
 -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT'
 -- generated by the implementation may represent either Linux Sync Files or
@@ -185,7 +183,7 @@
 -- = Description
 --
 -- If @handleType@ is not supported by the implementation, then
--- 'ExternalFenceProperties'::@externalFenceFeatures@ will be set to zero.
+-- 'ExternalFenceProperties'::@externalFenceFeatures@ will be zero.
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs
@@ -39,8 +39,6 @@
 --
 -- = Members
 --
--- Note
---
 -- A 'ExternalMemoryImageCreateInfo' structure with a non-zero
 -- @handleTypes@ field must be included in the creation parameters for an
 -- image that will be bound to memory that is either exported or imported.
@@ -103,8 +101,6 @@
 -- by external memory
 --
 -- = Members
---
--- Note
 --
 -- A 'ExternalMemoryBufferCreateInfo' structure with a non-zero
 -- @handleTypes@ field must be included in the creation parameters for a
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
@@ -361,10 +361,9 @@
 --
 -- Only usage flags representable in
 -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' are
--- returned in this structure’s @usage@. If a
+-- returned in this structure’s @usage@. If the @pNext@ chain includes a
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
--- structure is present in the @pNext@ chain, all usage flags of the buffer
--- are returned in
+-- structure, all usage flags of the buffer are returned in
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'::@usage@.
 --
 -- == Valid Usage
@@ -372,13 +371,13 @@
 -- -   #VUID-VkPhysicalDeviceExternalBufferInfo-None-09499# If the @pNext@
 --     chain does not include a
 --     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
---     structure, @usage@ must be a valid combination of
+--     structure, @usage@ /must/ be a valid combination of
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' values
 --
 -- -   #VUID-VkPhysicalDeviceExternalBufferInfo-None-09500# If the @pNext@
 --     chain does not include a
 --     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
---     structure, @usage@ must not be 0
+--     structure, @usage@ /must/ not be 0
 --
 -- == Valid Usage (Implicit)
 --
@@ -606,8 +605,6 @@
 -- identifies the Direct3D 12 node corresponding to @physicalDevice@.
 -- Otherwise, @deviceNodeMask@ /must/ be @1@.
 --
--- Note
---
 -- Although they have identical descriptions,
 -- 'PhysicalDeviceIDProperties'::@deviceUUID@ may differ from
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'::@pipelineCacheUUID@.
@@ -639,8 +636,6 @@
 -- -   PCI bus ID, or similar system configuration information.
 --
 -- -   Driver binary checksums.
---
--- Note
 --
 -- While 'PhysicalDeviceIDProperties'::@deviceUUID@ is specified to remain
 -- consistent across driver versions and system reboots, it is not intended
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs
@@ -213,8 +213,7 @@
 -- = Description
 --
 -- If @handleType@ is not supported by the implementation, then
--- 'ExternalSemaphoreProperties'::@externalSemaphoreFeatures@ will be set
--- to zero.
+-- 'ExternalSemaphoreProperties'::@externalSemaphoreFeatures@ will be zero.
 --
 -- == Valid Usage (Implicit)
 --
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
@@ -508,6 +508,7 @@
 -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceBufferMemoryRequirementsKHR',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceImageMemoryRequirements',
 -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageMemoryRequirementsKHR',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.getGeneratedCommandsMemoryRequirementsEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.getGeneratedCommandsMemoryRequirementsNV',
 -- 'getImageMemoryRequirements2',
 -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageMemoryRequirements2KHR',
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
@@ -104,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_AMD_anti_lag (PhysicalDeviceAntiLagFeaturesAMD)
 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)
@@ -115,9 +116,13 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderPropertiesHUAWEI)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalDeviceCoherentMemoryFeaturesAMD)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_command_buffer_inheritance (PhysicalDeviceCommandBufferInheritanceFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PhysicalDeviceConservativeRasterizationPropertiesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix2 (PhysicalDeviceCooperativeMatrix2FeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix2 (PhysicalDeviceCooperativeMatrix2PropertiesNV)
 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)
@@ -134,6 +139,7 @@
 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_control (PhysicalDeviceDepthClampControlFeaturesEXT)
 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)
@@ -146,7 +152,9 @@
 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_EXT_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (PhysicalDeviceDeviceMemoryReportFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (PhysicalDeviceDiagnosticsConfigFeaturesNV)
@@ -191,11 +199,14 @@
 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_HUAWEI_hdr_vivid (PhysicalDeviceHdrVividFeaturesHUAWEI)
 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_MESA_image_alignment_control (PhysicalDeviceImageAlignmentControlFeaturesMESA)
+import {-# SOURCE #-} Vulkan.Extensions.VK_MESA_image_alignment_control (PhysicalDeviceImageAlignmentControlPropertiesMESA)
 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)
@@ -213,8 +224,11 @@
 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_KHR_maintenance7 (PhysicalDeviceLayeredApiPropertiesListKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_MSFT_layered_driver (PhysicalDeviceLayeredDriverPropertiesMSFT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_dithering (PhysicalDeviceLegacyDitheringFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_vertex_attributes (PhysicalDeviceLegacyVertexAttributesFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_vertex_attributes (PhysicalDeviceLegacyVertexAttributesPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_line_rasterization (PhysicalDeviceLineRasterizationFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_line_rasterization (PhysicalDeviceLineRasterizationPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV)
@@ -225,6 +239,10 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PhysicalDeviceMaintenance5PropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance6 (PhysicalDeviceMaintenance6FeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance6 (PhysicalDeviceMaintenance6PropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance7 (PhysicalDeviceMaintenance7FeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance7 (PhysicalDeviceMaintenance7PropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_map_memory_placed (PhysicalDeviceMapMemoryPlacedFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_map_memory_placed (PhysicalDeviceMapMemoryPlacedPropertiesEXT)
 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)
@@ -255,6 +273,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_per_stage_descriptor_set (PhysicalDevicePerStageDescriptorSetFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryPropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PhysicalDevicePipelineBinaryFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PhysicalDevicePipelineBinaryPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_library_group_handles (PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT)
@@ -267,6 +287,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (PhysicalDevicePresentBarrierFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_present_mode_fifo_latest_ready (PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitive_topology_list_restart (PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitives_generated_query (PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT)
@@ -279,6 +300,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_push_descriptor (PhysicalDevicePushDescriptorPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rgba10x6_formats (PhysicalDeviceRGBA10X6FormatsFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_raw_access_chains (PhysicalDeviceRawAccessChainsFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder (PhysicalDeviceRayTracingInvocationReorderFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder (PhysicalDeviceRayTracingInvocationReorderPropertiesNV)
@@ -288,6 +310,7 @@
 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_ray_tracing_validation (PhysicalDeviceRayTracingValidationFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_IMG_relaxed_line_rasterization (PhysicalDeviceRelaxedLineRasterizationFeaturesIMG)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedFeaturesARM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedPropertiesARM)
@@ -301,6 +324,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_scheduling_controls (PhysicalDeviceSchedulingControlsFeaturesARM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_scheduling_controls (PhysicalDeviceSchedulingControlsPropertiesARM)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_atomic_float16_vector (PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features)
@@ -329,6 +353,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_object (PhysicalDeviceShaderObjectFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_object (PhysicalDeviceShaderObjectPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_quad_control (PhysicalDeviceShaderQuadControlFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_relaxed_extended_instruction (PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_replicated_composites (PhysicalDeviceShaderReplicatedCompositesFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsPropertiesNV)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures)
@@ -360,6 +386,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_robustness (PhysicalDeviceVertexAttributeRobustnessFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features)
 import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties)
@@ -376,7 +403,7 @@
 import Vulkan.Core10.Handles (PhysicalDevice_T)
 import Vulkan.CStruct.Extends (PokeChain)
 import Vulkan.CStruct.Extends (PokeChain(..))
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (QueueFamilyCheckpointProperties2NV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (QueueFamilyCheckpointProperties2NV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (QueueFamilyCheckpointPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (QueueFamilyGlobalPriorityPropertiesKHR)
 import Vulkan.Core10.DeviceInitialization (QueueFamilyProperties)
@@ -413,9 +440,13 @@
 -- = Description
 --
 -- Each structure in @pFeatures@ and its @pNext@ chain contains members
--- corresponding to fine-grained features. 'getPhysicalDeviceFeatures2'
--- writes each member to a boolean value indicating whether that feature is
--- supported.
+-- corresponding to fine-grained features. Each structure in @pFeatures@
+-- and its @pNext@ chain contains 'Vulkan.Core10.FundamentalTypes.Bool32'
+-- members corresponding to fine-grained features. Each such member is
+-- returned with a 'Vulkan.Core10.FundamentalTypes.TRUE' value indicating
+-- that feature is supported on this physical device, or a
+-- 'Vulkan.Core10.FundamentalTypes.FALSE' value indicating it is
+-- unsupported.
 --
 -- == Valid Usage (Implicit)
 --
@@ -881,8 +912,7 @@
 -- features defined by extensions. This structure /can/ be used in
 -- 'getPhysicalDeviceFeatures2' or /can/ be included in the @pNext@ chain
 -- of a 'Vulkan.Core10.Device.DeviceCreateInfo' structure, in which case it
--- controls which features are enabled on the device in lieu of
--- @pEnabledFeatures@.
+-- controls which features are enabled in lieu of @pEnabledFeatures@.
 --
 -- == Valid Usage (Implicit)
 --
@@ -913,6 +943,16 @@
   getNext PhysicalDeviceFeatures2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeRobustnessFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceHdrVividFeaturesHUAWEI = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrix2FeaturesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceShaderReplicatedCompositesFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceImageAlignmentControlFeaturesMESA = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceCommandBufferInheritanceFeaturesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceRawAccessChainsFeaturesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceMapMemoryPlacedFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderQuadControlFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderFloatControls2FeaturesKHR = Just f
@@ -930,6 +970,7 @@
     | 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 @PhysicalDeviceAntiLagFeaturesAMD = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderEnqueueFeaturesAMDX = Just f
     | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = Just f
@@ -966,12 +1007,14 @@
     | 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 @PhysicalDevicePipelineBinaryFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImageViewMinLodFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRGBA10X6FormatsFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceRayTracingValidationFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRayTracingMotionBlurFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductFeatures = Just f
@@ -986,10 +1029,14 @@
     | 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 @PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryRDMAFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceDepthClampControlFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDepthClipControlFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceLegacyVertexAttributesFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImageSlicedViewOf3DFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImage2DViewOf3DFeaturesEXT = Just f
@@ -1058,7 +1105,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceCopyMemoryIndirectFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderImageFootprintFeaturesNV = Just f
-    | Just Refl <- eqT @e @PhysicalDeviceComputeShaderDerivativesFeaturesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceComputeShaderDerivativesFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceCornerSampledImageFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceExclusiveScissorFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRepresentativeFragmentTestFeaturesNV = Just f
@@ -1078,6 +1125,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 @PhysicalDeviceMaintenance7FeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMaintenance6FeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMaintenance5FeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Features = Just f
@@ -1149,7 +1197,9 @@
 --     'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructurePropertiesKHR',
 --     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT',
 --     'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',
+--     'Vulkan.Extensions.VK_KHR_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesPropertiesKHR',
 --     'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT',
+--     'Vulkan.Extensions.VK_NV_cooperative_matrix2.PhysicalDeviceCooperativeMatrix2PropertiesNV',
 --     'Vulkan.Extensions.VK_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesKHR',
 --     'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesNV',
 --     'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectPropertiesNV',
@@ -1159,6 +1209,7 @@
 --     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT',
 --     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT',
 --     'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties',
+--     'Vulkan.Extensions.VK_EXT_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT',
 --     'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsPropertiesNV',
 --     'Vulkan.Extensions.VK_EXT_discard_rectangles.PhysicalDeviceDiscardRectanglePropertiesEXT',
 --     'Vulkan.Extensions.VK_NV_displacement_micromap.PhysicalDeviceDisplacementMicromapPropertiesNV',
@@ -1178,15 +1229,20 @@
 --     '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_MESA_image_alignment_control.PhysicalDeviceImageAlignmentControlPropertiesMESA',
 --     '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_KHR_maintenance7.PhysicalDeviceLayeredApiPropertiesListKHR',
 --     'Vulkan.Extensions.VK_MSFT_layered_driver.PhysicalDeviceLayeredDriverPropertiesMSFT',
+--     'Vulkan.Extensions.VK_EXT_legacy_vertex_attributes.PhysicalDeviceLegacyVertexAttributesPropertiesEXT',
 --     'Vulkan.Extensions.VK_KHR_line_rasterization.PhysicalDeviceLineRasterizationPropertiesKHR',
 --     '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_KHR_maintenance6.PhysicalDeviceMaintenance6PropertiesKHR',
+--     'Vulkan.Extensions.VK_KHR_maintenance7.PhysicalDeviceMaintenance7PropertiesKHR',
+--     'Vulkan.Extensions.VK_EXT_map_memory_placed.PhysicalDeviceMapMemoryPlacedPropertiesEXT',
 --     'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionPropertiesNV',
 --     'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderPropertiesEXT',
 --     'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV',
@@ -1198,6 +1254,7 @@
 --     'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowPropertiesNV',
 --     'Vulkan.Extensions.VK_EXT_pci_bus_info.PhysicalDevicePCIBusInfoPropertiesEXT',
 --     'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR',
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PhysicalDevicePipelineBinaryPropertiesKHR',
 --     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessPropertiesEXT',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties',
 --     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR',
@@ -1241,6 +1298,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>,
+-- 'Vulkan.Extensions.VK_KHR_maintenance7.PhysicalDeviceLayeredApiVulkanPropertiesKHR',
 -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType',
 -- 'getPhysicalDeviceProperties2',
@@ -1267,6 +1325,9 @@
   getNext PhysicalDeviceProperties2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrix2PropertiesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceImageAlignmentControlPropertiesMESA = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceMapMemoryPlacedPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRenderPassStripedPropertiesARM = Just f
     | Just Refl <- eqT @e @PhysicalDeviceSchedulingControlsPropertiesARM = Just f
     | Just Refl <- eqT @e @PhysicalDeviceCudaKernelLaunchPropertiesNV = Just f
@@ -1289,6 +1350,7 @@
     | 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 @PhysicalDevicePipelineBinaryPropertiesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDrmPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductProperties = Just f
@@ -1296,6 +1358,8 @@
     | 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 @PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceLegacyVertexAttributesPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRatePropertiesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetPropertiesKHR = Just f
@@ -1324,6 +1388,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceShadingRateImagePropertiesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMemoryDecompressionPropertiesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceCopyMemoryIndirectPropertiesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceComputeShaderDerivativesPropertiesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceTransformFeedbackPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDepthStencilResolveProperties = Just f
     | Just Refl <- eqT @e @PhysicalDevicePCIBusInfoPropertiesEXT = Just f
@@ -1336,6 +1401,8 @@
     | 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 @PhysicalDeviceLayeredApiPropertiesListKHR = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceMaintenance7PropertiesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMaintenance6PropertiesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMaintenance5PropertiesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Properties = Just f
@@ -1485,8 +1552,6 @@
 -- implementation for use in 'Vulkan.Core10.Image.createImage', then all
 -- members of @imageFormatProperties@ will be filled with zero.
 --
--- Note
---
 -- Filling @imageFormatProperties@ with zero for unsupported formats is an
 -- exception to the usual rule that output structures have undefined
 -- contents on error. This exception was unintentional, but is preserved
@@ -1775,7 +1840,7 @@
 -- -   #VUID-VkQueueFamilyProperties2-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_synchronization2.QueueFamilyCheckpointProperties2NV',
+--     'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointProperties2NV',
 --     'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV',
 --     'Vulkan.Extensions.VK_KHR_global_priority.QueueFamilyGlobalPriorityPropertiesKHR',
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR VkQueueFamilyQueryResultStatusPropertiesKHR>,
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
@@ -49,8 +49,6 @@
 -- back to the system. Command buffers allocated from the pool are not
 -- affected by the command.
 --
--- Note
---
 -- This command provides applications with some control over the internal
 -- memory allocations used by command pools.
 --
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs
@@ -97,8 +97,6 @@
 -- layout limits such as @maxPerStageDescriptor@* in order to be used in a
 -- pipeline layout.
 --
--- Note
---
 -- This is a 'Vulkan.Core10.Handles.Device' query rather than
 -- 'Vulkan.Core10.Handles.PhysicalDevice' because the answer /may/ depend
 -- on enabled features.
@@ -227,8 +225,8 @@
 --
 -- = Description
 --
--- @supported@ is set to 'Vulkan.Core10.FundamentalTypes.TRUE' if the
--- descriptor set /can/ be created, or else is set to
+-- @supported@ will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
+-- descriptor set /can/ be created, or else
 -- 'Vulkan.Core10.FundamentalTypes.FALSE'.
 --
 -- == Valid Usage (Implicit)
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,12 +53,6 @@
 --
 -- = Description
 --
--- -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value
---     identifying this structure.
---
--- -   @pNext@ is @NULL@ or a pointer to a structure extending this
---     structure.
---
 -- -   #extension-features-multiview# @multiview@ specifies whether the
 --     implementation supports multiview rendering within a render pass. If
 --     this feature is not enabled, the view mask of each subpass /must/
@@ -260,7 +254,7 @@
 -- additional broadcasting.
 --
 -- Some implementations /may/ not support multiview in conjunction with
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-mesh mesh shaders>,
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiviewMeshShader mesh shaders>,
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-gs geometry shaders>
 -- or
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-tess tessellation shaders>.
@@ -300,16 +294,16 @@
 -- bit in the subpass description. The only supported per-view attributes
 -- are position and viewport mask, and per-view position and viewport masks
 -- are written to output array variables decorated with @PositionPerViewNV@
--- and @ViewportMaskPerViewNV@, respectively. If @VK_NV_viewport_array2@ is
--- not supported and enabled, @ViewportMaskPerViewNV@ /must/ not be used.
--- Values written to elements of @PositionPerViewNV@ and
--- @ViewportMaskPerViewNV@ /must/ not depend on the @ViewIndex@. The shader
--- /must/ also write to an output variable decorated with @Position@, and
--- the value written to @Position@ /must/ equal the value written to
--- @PositionPerViewNV@[@ViewIndex@]. Similarly, if @ViewportMaskPerViewNV@
--- is written to then the shader /must/ also write to an output variable
--- decorated with @ViewportMaskNV@, and the value written to
--- @ViewportMaskNV@ /must/ equal the value written to
+-- and @ViewportMaskPerViewNV@, respectively. If the
+-- @VK_NV_viewport_array2@ extension is not supported and enabled,
+-- @ViewportMaskPerViewNV@ /must/ not be used. Values written to elements
+-- of @PositionPerViewNV@ and @ViewportMaskPerViewNV@ /must/ not depend on
+-- the @ViewIndex@. The shader /must/ also write to an output variable
+-- decorated with @Position@, and the value written to @Position@ /must/
+-- equal the value written to @PositionPerViewNV@[@ViewIndex@]. Similarly,
+-- if @ViewportMaskPerViewNV@ is written to then the shader /must/ also
+-- write to an output variable decorated with @ViewportMaskNV@, and the
+-- value written to @ViewportMaskNV@ /must/ equal the value written to
 -- @ViewportMaskPerViewNV@[@ViewIndex@]. Implementations will either use
 -- values taken from @Position@ and @ViewportMaskNV@ and invoke the shader
 -- once for each view, or will use values taken from @PositionPerViewNV@
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
@@ -354,8 +354,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Setting @forceExplicitReconstruction@ to
 -- 'Vulkan.Core10.FundamentalTypes.TRUE' /may/ have a performance penalty
 -- on implementations where explicit reconstruction is not the default mode
@@ -363,7 +361,7 @@
 --
 -- If @format@ supports
 -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT'
--- the @forceExplicitReconstruction@ value behaves as if it was set to
+-- the @forceExplicitReconstruction@ value behaves as if it were
 -- 'Vulkan.Core10.FundamentalTypes.TRUE'.
 --
 -- If the @pNext@ chain includes a
@@ -480,7 +478,7 @@
 --     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>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-ycbcrDegamma ycbcrDegamma>
 --     feature is not enabled, then
 --     'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'::@enableYDegamma@
 --     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
@@ -489,7 +487,7 @@
 --     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>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-ycbcrDegamma ycbcrDegamma>
 --     feature is not enabled, then
 --     'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'::@enableCbCrDegamma@
 --     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
@@ -498,7 +496,7 @@
 --     chain includes a
 --     'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'
 --     structure, @format@ /must/ be a format with 8-bit R, G, and B
---     components.
+--     components
 --
 -- == Valid Usage (Implicit)
 --
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,12 +41,6 @@
 --
 -- = Description
 --
--- -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value
---     identifying this structure.
---
--- -   @pNext@ is @NULL@ or a pointer to a structure extending this
---     structure.
---
 -- -   #extension-features-variablePointersStorageBuffer#
 --     @variablePointersStorageBuffer@ specifies whether the implementation
 --     supports the SPIR-V @VariablePointersStorageBuffer@ capability. When
diff --git a/src/Vulkan/Core12.hs b/src/Vulkan/Core12.hs
--- a/src/Vulkan/Core12.hs
+++ b/src/Vulkan/Core12.hs
@@ -328,6 +328,15 @@
 -- and
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties'.
 --
+-- The @subgroupSupportedStages@, @subgroupSupportedOperations@, and
+-- @subgroupQuadOperationsInAllStages@ members of this structure correspond
+-- respectively to the
+-- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties'::@supportedStages@,
+-- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties'::@supportedOperations@,
+-- and
+-- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties'::@quadOperationsInAllStages@
+-- members, but add the @subgroup@ prefix to the member name.
+--
 -- == Valid Usage (Implicit)
 --
 -- = See Also
@@ -360,7 +369,7 @@
     -- LUID and @deviceNodeMask@ contains a valid node mask, and
     -- 'Vulkan.Core10.FundamentalTypes.FALSE' if they do not.
     deviceLUIDValid :: Bool
-  , -- | #limits-subgroup-size# @subgroupSize@ is the default number of
+  , -- | #limits-subgroupSize# @subgroupSize@ is the default number of
     -- invocations in each subgroup. @subgroupSize@ is at least 1 if any of the
     -- physical device’s queues support
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or
@@ -370,20 +379,21 @@
   , -- | #limits-subgroupSupportedStages# @subgroupSupportedStages@ is a bitfield
     -- of 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits'
     -- describing the shader stages that
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>
     -- with
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>
     -- are supported in. @subgroupSupportedStages@ 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'.
     subgroupSupportedStages :: ShaderStageFlags
-  , -- | @subgroupSupportedOperations@ is a bitmask of
+  , -- | #limits-subgroupSupportedOperations# @subgroupSupportedOperations@ is a
+    -- bitmask of
     -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SubgroupFeatureFlagBits'
     -- specifying the sets of
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>
     -- with
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>
     -- supported on this device. @subgroupSupportedOperations@ will have the
     -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SUBGROUP_FEATURE_BASIC_BIT'
     -- bit set if any of the physical device’s queues support
@@ -392,7 +402,7 @@
     subgroupSupportedOperations :: SubgroupFeatureFlags
   , -- | #limits-subgroupQuadOperationsInAllStages#
     -- @subgroupQuadOperationsInAllStages@ is a boolean specifying whether
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-quad-operations quad group operations>
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-quad-operations quad group operations>
     -- are available in all stages, or are restricted to fragment and compute
     -- stages.
     subgroupQuadOperationsInAllStages :: Bool
@@ -550,12 +560,6 @@
 --
 -- = Description
 --
--- -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value
---     identifying this structure.
---
--- -   @pNext@ is @NULL@ or a pointer to a structure extending this
---     structure.
---
 -- -   #features-samplerMirrorClampToEdge# @samplerMirrorClampToEdge@
 --     indicates whether the implementation supports the
 --     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE'
@@ -628,7 +632,7 @@
 --     the implementation supports the minimum set of descriptor indexing
 --     features as described in the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-requirements Feature Requirements>
---     section. Enabling the @descriptorIndexing@ member when
+--     section. Enabling this feature when
 --     'Vulkan.Core10.Device.createDevice' is called does not imply the
 --     other minimum descriptor indexing features are also enabled. Those
 --     other descriptor indexing features /must/ be enabled individually as
@@ -636,9 +640,10 @@
 --
 -- -   #features-shaderInputAttachmentArrayDynamicIndexing#
 --     @shaderInputAttachmentArrayDynamicIndexing@ indicates whether arrays
---     of input attachments /can/ be indexed by dynamically uniform integer
---     expressions in shader code. If this feature is not enabled,
---     resources with a descriptor type of
+--     of input attachments /can/ be indexed by integer expressions that
+--     are dynamically uniform within either the subgroup or the invocation
+--     group in shader code. If this feature is not enabled, resources with
+--     a descriptor type of
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
 --     /must/ be indexed only by constant integral expressions when
 --     aggregated into arrays in shader code. This also indicates whether
@@ -647,8 +652,9 @@
 --
 -- -   #features-shaderUniformTexelBufferArrayDynamicIndexing#
 --     @shaderUniformTexelBufferArrayDynamicIndexing@ indicates whether
---     arrays of uniform texel buffers /can/ be indexed by dynamically
---     uniform integer expressions in shader code. If this feature is not
+--     arrays of uniform texel buffers /can/ be indexed by integer
+--     expressions that are dynamically uniform within either the subgroup
+--     or the invocation group in shader code. If this feature is not
 --     enabled, resources with a descriptor type of
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'
 --     /must/ be indexed only by constant integral expressions when
@@ -658,8 +664,9 @@
 --
 -- -   #features-shaderStorageTexelBufferArrayDynamicIndexing#
 --     @shaderStorageTexelBufferArrayDynamicIndexing@ indicates whether
---     arrays of storage texel buffers /can/ be indexed by dynamically
---     uniform integer expressions in shader code. If this feature is not
+--     arrays of storage texel buffers /can/ be indexed by integer
+--     expressions that are dynamically uniform within either the subgroup
+--     or the invocation group in shader code. If this feature is not
 --     enabled, resources with a descriptor type of
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
 --     /must/ be indexed only by constant integral expressions when
@@ -853,8 +860,8 @@
 --     uniform buffers as for storage and other kinds of buffers. See
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Buffer Layout>.
 --
--- -   #features-subgroup-extended-types# @shaderSubgroupExtendedTypes@ is
---     a boolean specifying whether subgroup operations can use 8-bit
+-- -   #features-shaderSubgroupExtendedTypes# @shaderSubgroupExtendedTypes@
+--     is a boolean specifying whether subgroup operations can use 8-bit
 --     integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and
 --     vectors of these types in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>
@@ -1379,8 +1386,9 @@
     -- null-terminated UTF-8 string with additional information about the
     -- driver.
     driverInfo :: ByteString
-  , -- | @conformanceVersion@ is the version of the Vulkan conformance test this
-    -- driver is conformant against (see
+  , -- | @conformanceVersion@ is the latest version of the Vulkan conformance
+    -- test that the implementor has successfully tested this driver against
+    -- prior to release (see
     -- 'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.ConformanceVersion').
     conformanceVersion :: ConformanceVersion
   , -- | #features-denormBehaviorIndependence# @denormBehaviorIndependence@ is a
@@ -1504,40 +1512,40 @@
   , -- | #limits-shaderUniformBufferArrayNonUniformIndexingNative#
     -- @shaderUniformBufferArrayNonUniformIndexingNative@ is a boolean value
     -- indicating whether uniform buffer descriptors natively support
-    -- nonuniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
-    -- then a single dynamic instance of an instruction that nonuniformly
+    -- non-uniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
+    -- then a single dynamic instance of an instruction that non-uniformly
     -- indexes an array of uniform buffers /may/ execute multiple times in
     -- order to access all the descriptors.
     shaderUniformBufferArrayNonUniformIndexingNative :: Bool
   , -- | #limits-shaderSampledImageArrayNonUniformIndexingNative#
     -- @shaderSampledImageArrayNonUniformIndexingNative@ is a boolean value
     -- indicating whether sampler and image descriptors natively support
-    -- nonuniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
-    -- then a single dynamic instance of an instruction that nonuniformly
+    -- non-uniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
+    -- then a single dynamic instance of an instruction that non-uniformly
     -- indexes an array of samplers or images /may/ execute multiple times in
     -- order to access all the descriptors.
     shaderSampledImageArrayNonUniformIndexingNative :: Bool
   , -- | #limits-shaderStorageBufferArrayNonUniformIndexingNative#
     -- @shaderStorageBufferArrayNonUniformIndexingNative@ is a boolean value
     -- indicating whether storage buffer descriptors natively support
-    -- nonuniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
-    -- then a single dynamic instance of an instruction that nonuniformly
+    -- non-uniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
+    -- then a single dynamic instance of an instruction that non-uniformly
     -- indexes an array of storage buffers /may/ execute multiple times in
     -- order to access all the descriptors.
     shaderStorageBufferArrayNonUniformIndexingNative :: Bool
   , -- | #limits-shaderStorageImageArrayNonUniformIndexingNative#
     -- @shaderStorageImageArrayNonUniformIndexingNative@ is a boolean value
-    -- indicating whether storage image descriptors natively support nonuniform
-    -- indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE', then a
-    -- single dynamic instance of an instruction that nonuniformly indexes an
-    -- array of storage images /may/ execute multiple times in order to access
-    -- all the descriptors.
+    -- indicating whether storage image descriptors natively support
+    -- non-uniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
+    -- then a single dynamic instance of an instruction that non-uniformly
+    -- indexes an array of storage images /may/ execute multiple times in order
+    -- to access all the descriptors.
     shaderStorageImageArrayNonUniformIndexingNative :: Bool
   , -- | #limits-shaderInputAttachmentArrayNonUniformIndexingNative#
     -- @shaderInputAttachmentArrayNonUniformIndexingNative@ is a boolean value
     -- indicating whether input attachment descriptors natively support
-    -- nonuniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
-    -- then a single dynamic instance of an instruction that nonuniformly
+    -- non-uniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
+    -- then a single dynamic instance of an instruction that non-uniformly
     -- indexes an array of input attachments /may/ execute multiple times in
     -- order to access all the descriptors.
     shaderInputAttachmentArrayNonUniformIndexingNative :: Bool
diff --git a/src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs b/src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs
--- a/src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs
+++ b/src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs
@@ -27,8 +27,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Note that while 'DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT' and
 -- 'DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT' both involve
 -- updates to descriptor sets after they are bound,
@@ -45,7 +43,7 @@
 newtype DescriptorBindingFlagBits = DescriptorBindingFlagBits Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
--- | 'DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT' indicates that if descriptors
+-- | 'DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT' specifies that if descriptors
 -- in this binding are updated between when the descriptor set is bound in
 -- a command buffer and when that command buffer is submitted to a queue,
 -- then the submission will use the most recently set descriptors for this
@@ -61,7 +59,7 @@
 -- another thread, but not concurrently with the set being reset or freed.
 pattern DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = DescriptorBindingFlagBits 0x00000001
 
--- | 'DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT' indicates that
+-- | 'DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT' specifies that
 -- descriptors in this binding /can/ be updated after a command buffer has
 -- bound this descriptor set, or while a command buffer that uses this
 -- descriptor set is pending execution, as long as the descriptors that are
@@ -78,7 +76,7 @@
 -- used by any shader invocations.
 pattern DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = DescriptorBindingFlagBits 0x00000002
 
--- | 'DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT' indicates that descriptors in
+-- | 'DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT' specifies that descriptors in
 -- this binding that are not /dynamically used/ need not contain valid
 -- descriptors at the time the descriptors are consumed. A descriptor is
 -- dynamically used if any shader invocation executes an instruction that
@@ -87,7 +85,7 @@
 -- considered to be referenced during command execution.
 pattern DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = DescriptorBindingFlagBits 0x00000004
 
--- | 'DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT' indicates that this
+-- | 'DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT' specifies that this
 -- is a /variable-sized descriptor binding/ whose size will be specified
 -- when a descriptor set is allocated using this layout. The value of
 -- @descriptorCount@ is treated as an upper bound on the size of the
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,7 +25,8 @@
                                               , DRIVER_ID_MESA_DOZEN
                                               , DRIVER_ID_MESA_NVK
                                               , DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA
-                                              , DRIVER_ID_MESA_AGXV
+                                              , DRIVER_ID_MESA_HONEYKRISP
+                                              , DRIVER_ID_RESERVED_27
                                               , ..
                                               )) where
 
@@ -42,8 +43,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Khronos driver IDs may be allocated by vendors at any time. There may be
 -- multiple driver IDs for the same vendor, representing different drivers
 -- (for e.g. different platforms, proprietary or open source, etc.). Only
@@ -141,9 +140,12 @@
 -- 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
+-- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_HONEYKRISP"
+pattern DRIVER_ID_MESA_HONEYKRISP = DriverId 26
 
+-- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_RESERVED_27"
+pattern DRIVER_ID_RESERVED_27 = DriverId 27
+
 {-# COMPLETE
   DRIVER_ID_AMD_PROPRIETARY
   , DRIVER_ID_AMD_OPEN_SOURCE
@@ -170,7 +172,8 @@
   , DRIVER_ID_MESA_DOZEN
   , DRIVER_ID_MESA_NVK
   , DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA
-  , DRIVER_ID_MESA_AGXV ::
+  , DRIVER_ID_MESA_HONEYKRISP
+  , DRIVER_ID_RESERVED_27 ::
     DriverId
   #-}
 
@@ -222,7 +225,8 @@
     ( DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA
     , "IMAGINATION_OPEN_SOURCE_MESA"
     )
-  , (DRIVER_ID_MESA_AGXV, "MESA_AGXV")
+  , (DRIVER_ID_MESA_HONEYKRISP, "MESA_HONEYKRISP")
+  , (DRIVER_ID_RESERVED_27, "RESERVED_27")
   ]
 
 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
@@ -32,8 +32,6 @@
 -- 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
@@ -52,26 +50,26 @@
 newtype ResolveModeFlagBits = ResolveModeFlagBits Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
--- | 'RESOLVE_MODE_NONE' indicates that no resolve operation is done.
+-- | 'RESOLVE_MODE_NONE' specifies that no resolve operation is done.
 pattern RESOLVE_MODE_NONE = ResolveModeFlagBits 0x00000000
 
--- | 'RESOLVE_MODE_SAMPLE_ZERO_BIT' indicates that result of the resolve
+-- | 'RESOLVE_MODE_SAMPLE_ZERO_BIT' specifies that result of the resolve
 -- operation is equal to the value of sample 0.
 pattern RESOLVE_MODE_SAMPLE_ZERO_BIT = ResolveModeFlagBits 0x00000001
 
--- | 'RESOLVE_MODE_AVERAGE_BIT' indicates that result of the resolve
+-- | 'RESOLVE_MODE_AVERAGE_BIT' specifies that result of the resolve
 -- operation is the average of the sample values.
 pattern RESOLVE_MODE_AVERAGE_BIT = ResolveModeFlagBits 0x00000002
 
--- | 'RESOLVE_MODE_MIN_BIT' indicates that result of the resolve operation is
+-- | 'RESOLVE_MODE_MIN_BIT' specifies that result of the resolve operation is
 -- the minimum of the sample values.
 pattern RESOLVE_MODE_MIN_BIT = ResolveModeFlagBits 0x00000004
 
--- | 'RESOLVE_MODE_MAX_BIT' indicates that result of the resolve operation is
+-- | 'RESOLVE_MODE_MAX_BIT' specifies that result of the resolve operation is
 -- the maximum of the sample values.
 pattern RESOLVE_MODE_MAX_BIT = ResolveModeFlagBits 0x00000008
 
--- | 'RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' indicates that rather
+-- | 'RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' specifies 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
diff --git a/src/Vulkan/Core12/Enums/ShaderFloatControlsIndependence.hs b/src/Vulkan/Core12/Enums/ShaderFloatControlsIndependence.hs
--- a/src/Vulkan/Core12/Enums/ShaderFloatControlsIndependence.hs
+++ b/src/Vulkan/Core12/Enums/ShaderFloatControlsIndependence.hs
@@ -28,7 +28,7 @@
   deriving newtype (Eq, Ord, Storable, Zero)
 
 -- | 'SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY' specifies that shader
--- float controls for 32-bit floating point /can/ be set independently;
+-- float controls for 32-bit floating-point /can/ be set independently;
 -- other bit widths /must/ be set identically to each other.
 pattern SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = ShaderFloatControlsIndependence 0
 
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
@@ -88,9 +88,10 @@
 data PhysicalDeviceDescriptorIndexingFeatures = PhysicalDeviceDescriptorIndexingFeatures
   { -- | #extension-features-shaderInputAttachmentArrayDynamicIndexing#
     -- @shaderInputAttachmentArrayDynamicIndexing@ indicates whether arrays of
-    -- input attachments /can/ be indexed by dynamically uniform integer
-    -- expressions in shader code. If this feature is not enabled, resources
-    -- with a descriptor type of
+    -- input attachments /can/ be indexed by integer expressions that are
+    -- dynamically uniform within either the subgroup or the invocation group
+    -- in shader code. If this feature is not enabled, resources with a
+    -- descriptor type of
     -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
     -- /must/ be indexed only by constant integral expressions when aggregated
     -- into arrays in shader code. This also indicates whether shader modules
@@ -98,9 +99,10 @@
     shaderInputAttachmentArrayDynamicIndexing :: Bool
   , -- | #extension-features-shaderUniformTexelBufferArrayDynamicIndexing#
     -- @shaderUniformTexelBufferArrayDynamicIndexing@ indicates whether arrays
-    -- of uniform texel buffers /can/ be indexed by dynamically uniform integer
-    -- expressions in shader code. If this feature is not enabled, resources
-    -- with a descriptor type of
+    -- of uniform texel buffers /can/ be indexed by integer expressions that
+    -- are dynamically uniform within either the subgroup or the invocation
+    -- group in shader code. If this feature is not enabled, resources with a
+    -- descriptor type of
     -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'
     -- /must/ be indexed only by constant integral expressions when aggregated
     -- into arrays in shader code. This also indicates whether shader modules
@@ -108,9 +110,10 @@
     shaderUniformTexelBufferArrayDynamicIndexing :: Bool
   , -- | #extension-features-shaderStorageTexelBufferArrayDynamicIndexing#
     -- @shaderStorageTexelBufferArrayDynamicIndexing@ indicates whether arrays
-    -- of storage texel buffers /can/ be indexed by dynamically uniform integer
-    -- expressions in shader code. If this feature is not enabled, resources
-    -- with a descriptor type of
+    -- of storage texel buffers /can/ be indexed by integer expressions that
+    -- are dynamically uniform within either the subgroup or the invocation
+    -- group in shader code. If this feature is not enabled, resources with a
+    -- descriptor type of
     -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
     -- /must/ be indexed only by constant integral expressions when aggregated
     -- into arrays in shader code. This also indicates whether shader modules
@@ -437,40 +440,40 @@
   , -- | #extension-limits-shaderUniformBufferArrayNonUniformIndexingNative#
     -- @shaderUniformBufferArrayNonUniformIndexingNative@ is a boolean value
     -- indicating whether uniform buffer descriptors natively support
-    -- nonuniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
-    -- then a single dynamic instance of an instruction that nonuniformly
+    -- non-uniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
+    -- then a single dynamic instance of an instruction that non-uniformly
     -- indexes an array of uniform buffers /may/ execute multiple times in
     -- order to access all the descriptors.
     shaderUniformBufferArrayNonUniformIndexingNative :: Bool
   , -- | #extension-limits-shaderSampledImageArrayNonUniformIndexingNative#
     -- @shaderSampledImageArrayNonUniformIndexingNative@ is a boolean value
     -- indicating whether sampler and image descriptors natively support
-    -- nonuniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
-    -- then a single dynamic instance of an instruction that nonuniformly
+    -- non-uniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
+    -- then a single dynamic instance of an instruction that non-uniformly
     -- indexes an array of samplers or images /may/ execute multiple times in
     -- order to access all the descriptors.
     shaderSampledImageArrayNonUniformIndexingNative :: Bool
   , -- | #extension-limits-shaderStorageBufferArrayNonUniformIndexingNative#
     -- @shaderStorageBufferArrayNonUniformIndexingNative@ is a boolean value
     -- indicating whether storage buffer descriptors natively support
-    -- nonuniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
-    -- then a single dynamic instance of an instruction that nonuniformly
+    -- non-uniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
+    -- then a single dynamic instance of an instruction that non-uniformly
     -- indexes an array of storage buffers /may/ execute multiple times in
     -- order to access all the descriptors.
     shaderStorageBufferArrayNonUniformIndexingNative :: Bool
   , -- | #extension-limits-shaderStorageImageArrayNonUniformIndexingNative#
     -- @shaderStorageImageArrayNonUniformIndexingNative@ is a boolean value
-    -- indicating whether storage image descriptors natively support nonuniform
-    -- indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE', then a
-    -- single dynamic instance of an instruction that nonuniformly indexes an
-    -- array of storage images /may/ execute multiple times in order to access
-    -- all the descriptors.
+    -- indicating whether storage image descriptors natively support
+    -- non-uniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
+    -- then a single dynamic instance of an instruction that non-uniformly
+    -- indexes an array of storage images /may/ execute multiple times in order
+    -- to access all the descriptors.
     shaderStorageImageArrayNonUniformIndexingNative :: Bool
   , -- | #extension-limits-shaderInputAttachmentArrayNonUniformIndexingNative#
     -- @shaderInputAttachmentArrayNonUniformIndexingNative@ is a boolean value
     -- indicating whether input attachment descriptors natively support
-    -- nonuniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
-    -- then a single dynamic instance of an instruction that nonuniformly
+    -- non-uniform indexing. If this is 'Vulkan.Core10.FundamentalTypes.FALSE',
+    -- then a single dynamic instance of an instruction that non-uniformly
     -- indexes an array of input attachments /may/ execute multiple times in
     -- order to access all the descriptors.
     shaderInputAttachmentArrayNonUniformIndexingNative :: Bool
@@ -1047,16 +1050,16 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.getDescriptorSetLayoutSupport'::@pCreateInfo@
 -- includes a variable-sized descriptor, then @supported@ is determined
 -- assuming the requested size of the variable-sized descriptor, and
--- @maxVariableDescriptorCount@ is set to the maximum size of that
--- descriptor that /can/ be successfully created (which is greater than or
--- equal to the requested size passed in). If the
+-- @maxVariableDescriptorCount@ is the maximum size of that descriptor that
+-- /can/ be successfully created (which is greater than or equal to the
+-- requested size passed in). If the
 -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo' structure
 -- does not include a variable-sized descriptor, or if the
 -- '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 having a
--- @descriptorCount@ of four if @descriptorType@ is
+-- feature is not enabled, then @maxVariableDescriptorCount@ is zero. For
+-- the purposes of this command, a variable-sized descriptor 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
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs
@@ -248,8 +248,6 @@
 -- 'MemoryOpaqueCaptureAddressAllocateInfo'::@opaqueCaptureAddress@, the
 -- return value /must/ be the same address.
 --
--- Note
---
 -- The expected usage for these opaque addresses is only for trace
 -- capture\/replay tools to store these addresses in a trace and
 -- subsequently specify them during replay.
@@ -308,8 +306,6 @@
 --
 -- = Description
 --
--- Note
---
 -- @bufferDeviceAddressMultiDevice@ exists to allow certain legacy
 -- platforms to be able to support @bufferDeviceAddress@ without needing to
 -- support shared GPU virtual addresses for multi-device configurations.
@@ -498,8 +494,6 @@
 -- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS'
 -- errors.
 --
--- Note
---
 -- The expected usage for this is that a trace capture\/replay tool will
 -- add the
 -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT'
@@ -576,8 +570,6 @@
 -- If @opaqueCaptureAddress@ is not zero, it /should/ be an address
 -- retrieved from 'getDeviceMemoryOpaqueCaptureAddress' on an identically
 -- created memory allocation on the same implementation.
---
--- Note
 --
 -- In most cases, it is expected that a non-zero @opaqueAddress@ is an
 -- address retrieved from 'getDeviceMemoryOpaqueCaptureAddress' on an
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
@@ -144,6 +144,12 @@
 -- sub-structures that include @sType@ and @pNext@ parameters, allowing
 -- them to be more easily extended.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCreateRenderPass2-device-10001# @device@ /must/ support at
+--     least one queue family with the
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' capability
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCreateRenderPass2-device-parameter# @device@ /must/ be a
@@ -983,9 +989,9 @@
 --     or
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'
 --
--- -   #VUID-VkAttachmentDescription2-format-09332# If
+-- -   #VUID-VkAttachmentDescription2-format-09332# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
---     is not enabled, @format@ /must/ not be
+--     feature is not enabled, @format@ /must/ not be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-VkAttachmentDescription2-format-09334# If @format@ is
@@ -1559,10 +1565,10 @@
 --     sample count of
 --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
 --
--- -   #VUID-VkSubpassDescription2-externalFormatResolve-09335# If
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09335# If the
 --     <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
+--     feature 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'
@@ -1585,19 +1591,19 @@
 --     the corresponding color attachment /must/ have the value
 --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'
 --
--- -   #VUID-VkSubpassDescription2-externalFormatResolve-09338# If
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09338# If the
 --     <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
+--     feature 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-externalFormatResolve-09339# If
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09339# If the
 --     <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
+--     feature 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 the
@@ -1792,46 +1798,47 @@
 --     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
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09344# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
---     is enabled, @pResolveAttachments@ is not @NULL@, and
+--     feature 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
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09345# If the
 --     <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
+--     feature 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
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09346# If the
 --     <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
+--     feature 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
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09347# If the
 --     <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
+--     feature 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'
+--     /must/ either be @NULL@ or a 'AttachmentReference2' structure with
+--     an @attachment@ value of
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'
 --
--- -   #VUID-VkSubpassDescription2-externalFormatResolve-09348# If
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09348# If the
 --     <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
+--     feature 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
@@ -2106,11 +2113,11 @@
 --     feature is not enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-VkSubpassDependency2-srcStageMask-07318# If neither the
+-- -   #VUID-VkSubpassDependency2-srcStageMask-07318# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @srcStageMask@ /must/ not contain
+--     features are enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-VkSubpassDependency2-srcStageMask-03937# If the
@@ -2119,9 +2126,9 @@
 --
 -- -   #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>
---     are enabled, @srcStageMask@ /must/ not contain
+--     extension or the
+--     <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-VkSubpassDependency2-dstStageMask-04090# If the
@@ -2161,11 +2168,11 @@
 --     feature is not enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-VkSubpassDependency2-dstStageMask-07318# If neither the
+-- -   #VUID-VkSubpassDependency2-dstStageMask-07318# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @dstStageMask@ /must/ not contain
+--     features are enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-VkSubpassDependency2-dstStageMask-03937# If the
@@ -2174,9 +2181,9 @@
 --
 -- -   #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>
---     are enabled, @dstStageMask@ /must/ not contain
+--     extension or the
+--     <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-VkSubpassDependency2-srcSubpass-03084# @srcSubpass@ /must/ be
@@ -2790,10 +2797,12 @@
 -- == 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
+--     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR',
+--     then at least one of the following features /must/ be enabled:
+--
+--     -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--
+--     -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>
 --
 -- == Valid Usage (Implicit)
 --
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
@@ -47,7654 +47,7545 @@
 --
 -- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent 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.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_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',
---     '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_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',
---     '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_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',
---     '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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 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'
---     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-rasterizerDiscardEnable-09416# If the
---     @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# 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.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-rasterizerDiscardEnable-09419# 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, 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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
---     a shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-09548# If the current render pass
---     was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawIndirectCount-None-09549# If the current render pass
---     was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 without 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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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-04875# If there is a shader object
---     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
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
---     or 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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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-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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent 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.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_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',
---     '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_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',
---     '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_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',
---     '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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 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'
---     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-rasterizerDiscardEnable-09416#
---     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417#
---     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, 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-rasterizerDiscardEnable-09418#
---     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.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-rasterizerDiscardEnable-09419#
---     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, 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
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420#
---     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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-09548# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09549# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 without 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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a
---     shader object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a
---     shader object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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-04875# If there is a shader
---     object 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
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
---     or 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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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-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
---     single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-buffer-02709# @buffer@ /must/
---     have been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-offset-02710# @offset@ /must/ be
---     a multiple of @4@
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711#
---     @commandBuffer@ /must/ not be a protected command buffer
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714# If
---     @countBuffer@ is non-sparse then it /must/ be bound completely and
---     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715# @countBuffer@
---     /must/ have been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-02716#
---     @countBufferOffset@ /must/ be a multiple of @4@
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02717# The count
---     stored in @countBuffer@ /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129#
---     (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or
---     equal to the size of @countBuffer@
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-07312# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance6 maintenance6>
---     is not enabled, a valid index buffer /must/ be bound
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-robustBufferAccess2-07825# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
---     is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) +
---     @offset@) /must/ be less than or equal to the size of the bound
---     index buffer, with @indexSize@ being based on the type specified by
---     @indexType@, where the index buffer, @indexType@, and @offset@ are
---     specified via
---     'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-stride-03142# @stride@ /must/ be
---     a multiple of @4@ and /must/ be greater than or equal to
---     sizeof('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand')
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143# If
---     @maxDrawCount@ is greater than or equal to @1@, (@stride@ ×
---     (@maxDrawCount@ - 1) + @offset@ +
---     sizeof('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))
---     /must/ be less than or equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03153# If count
---     stored in @countBuffer@ is equal to @1@, (@offset@ +
---     sizeof('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))
---     /must/ be less than or equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03154# If count
---     stored in @countBuffer@ is greater than @1@, (@stride@ ×
---     (@drawCount@ - 1) + @offset@ +
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-vkCmdDrawIndirectCount-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-vkCmdDrawIndirectCount-mipmapMode-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawIndirectCount-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of resources
+--     that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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
+--     specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with type
+--     equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595# Input
+--     attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-pDepthInputAttachmentIndex-09596# Input
+--     attachment views accessed in a dynamic render pass via a shader
+--     object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawIndirectCount-InputAttachmentIndex-09597# If an input
+--     attachment view accessed in a dynamic render pass via a shader
+--     object has an @InputAttachmentIndex@, the @InputAttachmentIndex@
+--     /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08618# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07834# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07836# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07837# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07838# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07839# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07840# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07841# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07843# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07844# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07845# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07847# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07848# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-viewportCount-03417# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-scissorCount-03418# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawIndirectCount-viewportCount-03419# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-04876# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-04877# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-logicOp-04878# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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
+--     bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07621# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07622# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07623# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09416# If the
+--     @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# If a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419# 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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-coverageModulationTableEnable-07488# If
+--     a shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-09548# If the current render pass
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09549# If the current render pass
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09642# If the current render pass
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09643# If the bound graphics
+--     pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #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# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and that pipeline was created without
+--     enabling
+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'
+--     for @vertexInputs@, then 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 there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-primitiveTopology-10286# If there is a
+--     shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have set @primitiveTopology@ to
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
+--     prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-pStrides-04913# If the bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'
+--     dynamic state enabled, but without the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command, and the
+--     @pStrides@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-04914# If there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-Input-07939# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeRobustness vertexAttributeRobustness>
+--     is not enabled and there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled and either the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-legacyVertexAttributes legacyVertexAttributes>
+--     feature is not enabled or the SPIR-V Type associated with a given
+--     @Input@ variable of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ is 64-bit, 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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-04875# If there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @primitiveTopology@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-04879# If there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09637# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
+--     feature is not enabled, the 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',
+--     there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-stage-06481# The bound graphics
+--     pipeline /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCount drawIndirectCount>
+--     feature 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@
+--
+-- == 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-unnormalizedCoordinates-09635#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-unnormalizedCoordinates-09636#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of
+--     resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with
+--     type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595#
+--     Input attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-pDepthInputAttachmentIndex-09596#
+--     Input attachment views accessed in a dynamic render pass via a
+--     shader object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-InputAttachmentIndex-09597# If
+--     an input attachment view accessed in a dynamic render pass via a
+--     shader object has an @InputAttachmentIndex@, the
+--     @InputAttachmentIndex@ /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08618# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07834# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07836# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07837# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07838# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07839# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07840# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07841# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07843# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07844# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07845# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07847# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07848# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04876# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04877# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07621# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07622# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07623# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09416#
+--     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417#
+--     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, 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-rasterizerDiscardEnable-09418#
+--     If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419#
+--     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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-coverageModulationTableEnable-07488#
+--     If a shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420#
+--     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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-09548# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09549# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09642# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09643# If the bound
+--     graphics pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #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# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and that pipeline was created without
+--     enabling
+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'
+--     for @vertexInputs@, then 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 there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-primitiveTopology-10286# If
+--     there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have set @primitiveTopology@ to
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
+--     prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913# If the bound
+--     graphics pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'
+--     dynamic state enabled, but without the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command, and the
+--     @pStrides@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04914# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-Input-07939# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeRobustness vertexAttributeRobustness>
+--     is not enabled and there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 there is a
+--     shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled and either the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-legacyVertexAttributes legacyVertexAttributes>
+--     feature is not enabled or the SPIR-V Type associated with a given
+--     @Input@ variable of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ is 64-bit, 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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-04875# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @primitiveTopology@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04879# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09637# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
+--     feature is not enabled, the 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',
+--     there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-stage-06481# The bound graphics
+--     pipeline /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-buffer-02709# @buffer@ /must/
+--     have been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-offset-02710# @offset@ /must/ be
+--     a multiple of @4@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711#
+--     @commandBuffer@ /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714# If
+--     @countBuffer@ is non-sparse then it /must/ be bound completely and
+--     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715# @countBuffer@
+--     /must/ have been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-02716#
+--     @countBufferOffset@ /must/ be a multiple of @4@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02717# The count
+--     stored in @countBuffer@ /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129#
+--     (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or
+--     equal to the size of @countBuffer@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04445# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCount drawIndirectCount>
+--     feature is not enabled this function /must/ not be used
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07312# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance6 maintenance6>
+--     feature is not enabled, a valid index buffer /must/ be bound
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-stride-03142# @stride@ /must/ be
+--     a multiple of @4@ and /must/ be greater than or equal to
+--     sizeof('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand')
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143# If
+--     @maxDrawCount@ is greater than or equal to @1@, (@stride@ ×
+--     (@maxDrawCount@ - 1) + @offset@ +
 --     sizeof('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))
 --     /must/ be less than or equal to the size of @buffer@
 --
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs
@@ -147,8 +147,9 @@
     -- null-terminated UTF-8 string with additional information about the
     -- driver.
     driverInfo :: ByteString
-  , -- | @conformanceVersion@ is the version of the Vulkan conformance test this
-    -- driver is conformant against (see 'ConformanceVersion').
+  , -- | @conformanceVersion@ is the latest version of the Vulkan conformance
+    -- test that the implementor has successfully tested this driver against
+    -- prior to release (see 'ConformanceVersion').
     conformanceVersion :: ConformanceVersion
   }
   deriving (Typeable)
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs
@@ -56,7 +56,7 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceShaderSubgroupExtendedTypesFeatures = PhysicalDeviceShaderSubgroupExtendedTypesFeatures
-  { -- | #extension-features-subgroup-extended-types#
+  { -- | #extension-features-shaderSubgroupExtendedTypes#
     -- @shaderSubgroupExtendedTypes@ is a boolean specifying whether subgroup
     -- operations can use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit
     -- floating-point, and vectors of these types in
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs
@@ -98,8 +98,6 @@
 --
 -- = Description
 --
--- Note
---
 -- If a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission>
 -- command is pending execution, then the value returned by this command
diff --git a/src/Vulkan/Core13.hs b/src/Vulkan/Core13.hs
--- a/src/Vulkan/Core13.hs
+++ b/src/Vulkan/Core13.hs
@@ -407,7 +407,7 @@
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. @minSubgroupSize@
     -- is a power-of-two. @minSubgroupSize@ is less than or equal to
     -- @maxSubgroupSize@. @minSubgroupSize@ is less than or equal to
-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subgroupSize subgroupSize>.
     minSubgroupSize :: Word32
   , -- | #limits-maxSubgroupSize# @maxSubgroupSize@ is the maximum subgroup size
     -- supported by this device. @maxSubgroupSize@ is at least one if any of
@@ -416,7 +416,7 @@
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. @maxSubgroupSize@
     -- is a power-of-two. @maxSubgroupSize@ is greater than or equal to
     -- @minSubgroupSize@. @maxSubgroupSize@ is greater than or equal to
-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subgroupSize subgroupSize>.
     maxSubgroupSize :: Word32
   , -- | #limits-maxComputeWorkgroupSubgroups# @maxComputeWorkgroupSubgroups@ is
     -- the maximum number of subgroups supported by the implementation within a
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
@@ -1,6 +1,8 @@
 {-# language CPP #-}
 -- No documentation found for Chapter "AccessFlags2"
-module Vulkan.Core13.Enums.AccessFlags2  ( pattern ACCESS_2_NONE_KHR
+module Vulkan.Core13.Enums.AccessFlags2  ( pattern ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT
+                                         , pattern ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT
+                                         , pattern ACCESS_2_NONE_KHR
                                          , pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR
                                          , pattern ACCESS_2_INDEX_READ_BIT_KHR
                                          , pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR
@@ -76,6 +78,14 @@
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags64)
+-- No documentation found for TopLevel "VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT"
+pattern ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT = ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV
+
+
+-- No documentation found for TopLevel "VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT"
+pattern ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT = ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV
+
+
 -- No documentation found for TopLevel "VK_ACCESS_2_NONE_KHR"
 pattern ACCESS_2_NONE_KHR = ACCESS_2_NONE
 
@@ -166,15 +176,11 @@
 --
 -- = Description
 --
--- Note
---
 -- In situations where an application wishes to select all access types for
 -- a given set of pipeline stages, 'ACCESS_2_MEMORY_READ_BIT' or
 -- 'ACCESS_2_MEMORY_WRITE_BIT' can be used. This is particularly useful
 -- when specifying stages that only have a single access type.
 --
--- Note
---
 -- The 'AccessFlags2' bitmask goes beyond the 31 individual bit flags
 -- allowable within a C99 enum, which is how
 -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' is defined. The
@@ -183,7 +189,8 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
+-- 'AccessFlags2'
 newtype AccessFlagBits2 = AccessFlagBits2 Flags64
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
@@ -234,8 +241,6 @@
 -- -   'ACCESS_2_SHADER_SAMPLED_READ_BIT'
 --
 -- -   'ACCESS_2_SHADER_STORAGE_READ_BIT'
---
--- -   'ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR'
 pattern ACCESS_2_SHADER_READ_BIT = AccessFlagBits2 0x0000000000000020
 
 -- | 'ACCESS_2_SHADER_WRITE_BIT' is equivalent to
@@ -414,7 +419,7 @@
 -- in any shader pipeline stage.
 pattern ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = AccessFlagBits2 0x0000010000000000
 
--- | 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' specifies read access to a
+-- | 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' specifies read access to an
 -- invocation mask image in the
 -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'
 -- pipeline stage.
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
@@ -392,8 +392,6 @@
 --     in
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operations video encode operations>.
 --
---     Note
---
 --     Specific
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-profiles video profiles>
 --     /may/ have additional restrictions on the format and other image
@@ -455,6 +453,25 @@
 --     image /can/ be created with
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'.
 --
+-- -   @VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@
+--     specifies that an image view with this format /can/ be used as a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#encode-quantization-delta-map quantization delta map>
+--     in
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operations video encode operations>.
+--
+-- -   @VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@ specifies
+--     that an image view with this format /can/ be used as an
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#encode-emphasis-map emphasis map>
+--     in
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operations video encode operations>.
+--
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#encode-quantization-map Video encode quantization maps>
+--     have additional restrictions specific to the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-profiles video profile>
+--     they are used with that /can/ be enumerated using the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR>
+--     command.
+--
 -- 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
@@ -517,7 +534,8 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
+-- 'FormatFeatureFlags2'
 newtype FormatFeatureFlagBits2 = FormatFeatureFlagBits2 Flags64
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
diff --git a/src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs b/src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs
--- a/src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs
+++ b/src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs
@@ -49,12 +49,12 @@
 newtype PipelineCreationFeedbackFlagBits = PipelineCreationFeedbackFlagBits Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
--- | 'PIPELINE_CREATION_FEEDBACK_VALID_BIT' indicates that the feedback
+-- | 'PIPELINE_CREATION_FEEDBACK_VALID_BIT' specifies that the feedback
 -- information is valid.
 pattern PIPELINE_CREATION_FEEDBACK_VALID_BIT = PipelineCreationFeedbackFlagBits 0x00000001
 
 -- | 'PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT'
--- indicates that a readily usable pipeline or pipeline stage was found in
+-- specifies that a readily usable pipeline or pipeline stage was found in
 -- the @pipelineCache@ specified by the application in the pipeline
 -- creation command.
 --
@@ -69,8 +69,6 @@
 -- sets this bit for the entire pipeline, it /may/ leave it unset for any
 -- stage.
 --
--- Note
---
 -- Implementations are encouraged to provide a meaningful signal to
 -- applications using this bit. The intention is to communicate to the
 -- application that the pipeline or pipeline stage was created “as fast as
@@ -79,7 +77,7 @@
 -- this bit as the feedback would be unactionable.
 pattern PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = PipelineCreationFeedbackFlagBits 0x00000002
 
--- | 'PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT' indicates
+-- | 'PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT' specifies
 -- that the base pipeline specified by the @basePipelineHandle@ or
 -- @basePipelineIndex@ member of the @Vk*PipelineCreateInfo@ structure was
 -- used to accelerate the creation of the pipeline.
@@ -88,8 +86,6 @@
 -- 'PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT' bit if it
 -- was able to avoid a significant amount of work by using the base
 -- pipeline.
---
--- Note
 --
 -- While “significant amount of work” is subjective, implementations are
 -- encouraged to provide a meaningful signal to applications using this
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
@@ -1,6 +1,7 @@
 {-# language CPP #-}
 -- No documentation found for Chapter "PipelineStageFlags2"
-module Vulkan.Core13.Enums.PipelineStageFlags2  ( pattern PIPELINE_STAGE_2_NONE_KHR
+module Vulkan.Core13.Enums.PipelineStageFlags2  ( pattern PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT
+                                                , pattern PIPELINE_STAGE_2_NONE_KHR
                                                 , pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR
                                                 , pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR
                                                 , pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR
@@ -83,6 +84,10 @@
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags64)
+-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT"
+pattern PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT = PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV
+
+
 -- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_NONE_KHR"
 pattern PIPELINE_STAGE_2_NONE_KHR = PIPELINE_STAGE_2_NONE
 
@@ -198,14 +203,10 @@
 --
 -- = Description
 --
--- Note
---
 -- The @TOP@ and @BOTTOM@ pipeline stages are deprecated, and applications
 -- should prefer 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT' and
 -- 'PIPELINE_STAGE_2_NONE'.
 --
--- Note
---
 -- The 'PipelineStageFlags2' bitmask goes beyond the 31 individual bit
 -- flags allowable within a C99 enum, which is how
 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' is
@@ -215,7 +216,8 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
+-- 'PipelineStageFlags2'
 newtype PipelineStageFlagBits2 = PipelineStageFlagBits2 Flags64
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
@@ -233,6 +235,8 @@
 -- where indirect command parameters are consumed. This stage also includes
 -- reading commands written by
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.
+-- This stage also includes reading commands written by
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.cmdPreprocessGeneratedCommandsEXT'.
 pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = PipelineStageFlagBits2 0x0000000000000002
 
 -- | 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT' is equivalent to the logical OR of:
diff --git a/src/Vulkan/Core13/Enums/PrivateDataSlotCreateFlags.hs b/src/Vulkan/Core13/Enums/PrivateDataSlotCreateFlags.hs
--- a/src/Vulkan/Core13/Enums/PrivateDataSlotCreateFlags.hs
+++ b/src/Vulkan/Core13/Enums/PrivateDataSlotCreateFlags.hs
@@ -24,6 +24,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
+-- 'Vulkan.Core10.FundamentalTypes.Flags',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PrivateDataSlotCreateInfo'
 newtype PrivateDataSlotCreateFlags = PrivateDataSlotCreateFlags Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
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
@@ -7,8 +7,8 @@
                                               , RenderingFlagBits( RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT
                                                                  , RENDERING_SUSPENDING_BIT
                                                                  , RENDERING_RESUMING_BIT
+                                                                 , RENDERING_CONTENTS_INLINE_BIT_KHR
                                                                  , RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT
-                                                                 , RENDERING_CONTENTS_INLINE_BIT_EXT
                                                                  , ..
                                                                  )
                                               ) where
@@ -75,20 +75,18 @@
 -- resuming an earlier suspended render pass instance.
 pattern RENDERING_RESUMING_BIT = RenderingFlagBits 0x00000004
 
+-- | 'RENDERING_CONTENTS_INLINE_BIT_KHR' specifies that draw calls for the
+-- render pass instance /can/ be recorded inline within the current command
+-- buffer. 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_KHR = RenderingFlagBits 0x00000010
+
 -- | 'RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT' specifies that
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-legacy-dithering Legacy Dithering>
 -- 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"
 
@@ -104,12 +102,12 @@
   , (RENDERING_SUSPENDING_BIT, "SUSPENDING_BIT")
   , (RENDERING_RESUMING_BIT, "RESUMING_BIT")
   ,
-    ( RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT
-    , "ENABLE_LEGACY_DITHERING_BIT_EXT"
+    ( RENDERING_CONTENTS_INLINE_BIT_KHR
+    , "CONTENTS_INLINE_BIT_KHR"
     )
   ,
-    ( RENDERING_CONTENTS_INLINE_BIT_EXT
-    , "CONTENTS_INLINE_BIT_EXT"
+    ( RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT
+    , "ENABLE_LEGACY_DITHERING_BIT_EXT"
     )
   ]
 
diff --git a/src/Vulkan/Core13/Handles.hs b/src/Vulkan/Core13/Handles.hs
--- a/src/Vulkan/Core13/Handles.hs
+++ b/src/Vulkan/Core13/Handles.hs
@@ -37,6 +37,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.createPrivateDataSlot',
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
@@ -706,8 +706,6 @@
 -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
 -- /can/ be used instead of 'cmdBindVertexBuffers2' to set the stride.
 --
--- Note
---
 -- Unlike the static state to set the same, @pStrides@ must be between 0
 -- and the maximum extent of the attributes in the binding.
 -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
@@ -1250,6 +1248,11 @@
 --         '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-vkCmdSetDepthBoundsTestEnable-depthBounds-10010# 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'
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_feedback.hs b/src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_feedback.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_feedback.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_feedback.hs
@@ -110,8 +110,6 @@
 -- in 'PipelineCreationFeedback'::@flags@ for @pPipelineCreationFeedback@
 -- and every element of @pPipelineStageCreationFeedbacks@.
 --
--- Note
---
 -- One common scenario for an implementation to skip per-stage feedback is
 -- when
 -- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT'
diff --git a/src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs b/src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs
@@ -307,8 +307,8 @@
                   -- #VUID-vkSetPrivateData-privateDataSlot-parent# @privateDataSlot@ /must/
                   -- have been created, allocated, or retrieved from @device@
                   PrivateDataSlot
-               -> -- | @data@ is user defined data to associate the object with. This data will
-                  -- be stored at @privateDataSlot@.
+               -> -- | @data@ is application-defined data to associate the object with. This
+                  -- data will be stored at @privateDataSlot@.
                   ("data" ::: Word64)
                -> io ()
 setPrivateData device
@@ -339,8 +339,6 @@
 -- | vkGetPrivateData - Retrieve data associated with a Vulkan object
 --
 -- = Description
---
--- Note
 --
 -- Due to platform details on Android, implementations might not be able to
 -- reliably return @0@ from calls to 'getPrivateData' for
diff --git a/src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs b/src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs
@@ -56,8 +56,6 @@
 -- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to
 -- selectively enable these features.
 --
--- Note
---
 -- The
 -- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT'
 -- structure was added in version 2 of the @VK_EXT_subgroup_size_control@
@@ -179,7 +177,7 @@
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. @minSubgroupSize@
     -- is a power-of-two. @minSubgroupSize@ is less than or equal to
     -- @maxSubgroupSize@. @minSubgroupSize@ is less than or equal to
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroupSize subgroupSize>.
     minSubgroupSize :: Word32
   , -- | #extension-limits-maxSubgroupSize# @maxSubgroupSize@ is the maximum
     -- subgroup size supported by this device. @maxSubgroupSize@ is at least
@@ -188,7 +186,7 @@
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. @maxSubgroupSize@
     -- is a power-of-two. @maxSubgroupSize@ is greater than or equal to
     -- @minSubgroupSize@. @maxSubgroupSize@ is greater than or equal to
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroupSize subgroupSize>.
     maxSubgroupSize :: Word32
   , -- | #extension-limits-maxComputeWorkgroupSubgroups#
     -- @maxComputeWorkgroupSubgroups@ is the maximum number of subgroups
diff --git a/src/Vulkan/Core13/Promoted_From_VK_EXT_tooling_info.hs b/src/Vulkan/Core13/Promoted_From_VK_EXT_tooling_info.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_EXT_tooling_info.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_EXT_tooling_info.hs
@@ -81,11 +81,11 @@
 --
 -- If @pToolProperties@ is @NULL@, then the number of tools currently
 -- active on @physicalDevice@ is returned in @pToolCount@. Otherwise,
--- @pToolCount@ /must/ point to a variable set by the user to the number of
--- elements in the @pToolProperties@ array, and on return the variable is
--- overwritten with the number of structures actually written to
--- @pToolProperties@. If @pToolCount@ is less than the number of currently
--- active tools, at most @pToolCount@ structures will be written.
+-- @pToolCount@ /must/ point to a variable set by the application to the
+-- number of elements in the @pToolProperties@ array, and on return the
+-- variable is overwritten with the number of structures actually written
+-- to @pToolProperties@. If @pToolCount@ is less than the number of
+-- currently active tools, at most @pToolCount@ structures will be written.
 --
 -- The count and properties of active tools /may/ change in response to
 -- events outside the scope of the specification. An application /should/
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
@@ -1713,9 +1713,9 @@
 --     of @pRegions@, @extent.depth@ /must/ be @1@
 --
 -- -   #VUID-VkCopyImageInfo2-srcImage-07743# If @srcImage@ and @dstImage@
---     have a different 'Vulkan.Core10.Enums.ImageType.ImageType', and
+--     have a different 'Vulkan.Core10.Enums.ImageType.ImageType', and the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
---     is not enabled, one /must/ be
+--     feature 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'
 --
@@ -2275,7 +2275,7 @@
 --
 -- -   #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>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-selectableCubicWeights selectableCubicWeights>
 --     feature is not enabled then the cubic weights /must/ be
 --     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
 --
@@ -2439,8 +2439,8 @@
 -- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554# If the image
 --     region specified by each element of @pRegions@ contains
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
---     in its @pNext@ chain, the rotated destination region as described in
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing>
+--     in its @pNext@ chain, the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing rotated destination region>
 --     /must/ be contained within @dstImage@
 --
 -- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555# If any element of
@@ -2551,34 +2551,142 @@
 --     /must/ be @1@
 --
 -- -   #VUID-VkCopyBufferToImageInfo2-dstImage-07274# For each element of
---     @pRegions@, @imageOffset.x@ /must/ be a multiple of the
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     @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-imageOffset-10051# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     and @imageOffset.x@ does not equal the width of the subresource
+--     specified by @imageSubresource@, @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-dstImage-07275# For each element of
---     @pRegions@, @imageOffset.y@ /must/ be a multiple of the
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     @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-imageOffset-10052# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     and @imageOffset.y@ does not equal the height of the subresource
+--     specified by @imageSubresource@, @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-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-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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     the sum of @imageOffset.x@ and @extent.width@ does not equal the
+--     width of the subresource specified by @imageSubresource@,
+--     @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-imageOffset-10053# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the difference of @imageOffset.x@ and @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 width>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyBufferToImageInfo2-imageOffset-10054# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @imageOffset.x@ and @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-imageOffset-10055# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the sum of @imageOffset.x@ and @extent.height@ does not equal the
+--     width of the subresource specified by @imageSubresource@,
+--     @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 width>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
 -- -   #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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     and the sum of @imageOffset.y@ and @extent.height@ does not equal
+--     the height of the subresource specified by @imageSubresource@,
+--     @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-imageOffset-10056# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the sum of @imageOffset.y@ and @extent.width@ does not equal the
+--     height of the subresource specified by @imageSubresource@,
+--     @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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyBufferToImageInfo2-imageOffset-10057# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @imageOffset.y@ and @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-imageOffset-10058# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the difference of @imageOffset.y@ and @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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
 -- -   #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
@@ -2765,8 +2873,8 @@
 -- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557# If the image
 --     region specified by each element of @pRegions@ contains
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
---     in its @pNext@ chain, the rotated source region as described in
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing>
+--     in its @pNext@ chain, the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing rotated source region>
 --     /must/ be contained within @srcImage@
 --
 -- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558# If any element of
@@ -2871,31 +2979,139 @@
 --     /must/ be @1@
 --
 -- -   #VUID-VkCopyImageToBufferInfo2-srcImage-07274# For each element of
---     @pRegions@, @imageOffset.x@ /must/ be a multiple of the
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     @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-imageOffset-10051# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     and @imageOffset.x@ does not equal the width of the subresource
+--     specified by @imageSubresource@, @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-srcImage-07275# For each element of
---     @pRegions@, @imageOffset.y@ /must/ be a multiple of the
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     @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-imageOffset-10052# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     and @imageOffset.y@ does not equal the height of the subresource
+--     specified by @imageSubresource@, @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-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-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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     the sum of @imageOffset.x@ and @extent.width@ does not equal the
+--     width of the subresource specified by @imageSubresource@,
+--     @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-imageOffset-10053# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the difference of @imageOffset.x@ and @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 width>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToBufferInfo2-imageOffset-10054# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @imageOffset.x@ and @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-imageOffset-10055# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the sum of @imageOffset.x@ and @extent.height@ does not equal the
+--     width of the subresource specified by @imageSubresource@,
+--     @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 width>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
 -- -   #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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     and the sum of @imageOffset.y@ and @extent.height@ does not equal
+--     the height of the subresource specified by @imageSubresource@,
+--     @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-imageOffset-10056# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the sum of @imageOffset.y@ and @extent.width@ does not equal the
+--     height of the subresource specified by @imageSubresource@,
+--     @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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToBufferInfo2-imageOffset-10057# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @imageOffset.y@ and @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-imageOffset-10058# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the difference of @imageOffset.y@ and @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 height>
 --     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
 --
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
@@ -73,15 +73,15 @@
 import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
 import Vulkan.Core10.Handles (ImageView)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (MultisampledRenderToSingleSampledInfoEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (MultiviewPerViewAttributesInfoNVX)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (MultiviewPerViewAttributesInfoNVX)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas (MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM)
 import Vulkan.CStruct.Extends (PokeChain)
 import Vulkan.CStruct.Extends (PokeChain(..))
 import Vulkan.Core10.FundamentalTypes (Rect2D)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (RenderPassStripeBeginInfoARM)
 import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlags)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentDensityMapAttachmentInfoEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentShadingRateAttachmentInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (RenderingFragmentDensityMapAttachmentInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (RenderingFragmentShadingRateAttachmentInfoKHR)
 import Vulkan.Core12.Enums.ResolveModeFlagBits (ResolveModeFlagBits)
 import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)
 import Vulkan.CStruct.Extends (SomeStruct)
@@ -128,6 +128,60 @@
 --     feature is not enabled, @pRenderingInfo->flags@ /must/ not include
 --     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'
 --
+-- -   #VUID-vkCmdBeginRendering-pRenderingInfo-09588# If
+--     @pRenderingInfo->pDepthAttachment@ is not @NULL@ and
+--     @pRenderingInfo->pDepthAttachment->imageView@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pRenderingInfo->pDepthAttachment->imageView@ /must/ be in the
+--     layout specified by @pRenderingInfo->pDepthAttachment->imageLayout@
+--
+-- -   #VUID-vkCmdBeginRendering-pRenderingInfo-09589# If
+--     @pRenderingInfo->pDepthAttachment@ is not @NULL@,
+--     @pRenderingInfo->pDepthAttachment->imageView@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pRenderingInfo->pDepthAttachment->imageResolveMode@ is not
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', and
+--     @pRenderingInfo->pDepthAttachment->resolveImageView@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pRenderingInfo->pDepthAttachment->resolveImageView@ /must/ be in
+--     the layout specified by
+--     @pRenderingInfo->pDepthAttachment->resolveImageLayout@
+--
+-- -   #VUID-vkCmdBeginRendering-pRenderingInfo-09590# If
+--     @pRenderingInfo->pStencilAttachment@ is not @NULL@ and
+--     @pRenderingInfo->pStencilAttachment->imageView@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pRenderingInfo->pStencilAttachment->imageView@ /must/ be in the
+--     layout specified by
+--     @pRenderingInfo->pStencilAttachment->imageLayout@
+--
+-- -   #VUID-vkCmdBeginRendering-pRenderingInfo-09591# If
+--     @pRenderingInfo->pStencilAttachment@ is not @NULL@,
+--     @pRenderingInfo->pStencilAttachment->imageView@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pRenderingInfo->pStencilAttachment->imageResolveMode@ is not
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', and
+--     @pRenderingInfo->pStencilAttachment->resolveImageView@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pRenderingInfo->pStencilAttachment->resolveImageView@ /must/ be in
+--     the layout specified by
+--     @pRenderingInfo->pStencilAttachment->resolveImageLayout@
+--
+-- -   #VUID-vkCmdBeginRendering-pRenderingInfo-09592# For any element of
+--     @pRenderingInfo->pColorAttachments@, if @imageView@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', that image view /must/ be
+--     in the layout specified by @imageLayout@
+--
+-- -   #VUID-vkCmdBeginRendering-pRenderingInfo-09593# For any element of
+--     @pRenderingInfo->pColorAttachments@, if either @imageResolveMode@ is
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     or @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and
+--     @resolveMode@ is not
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', and
+--     @resolveImageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @resolveImageView@ /must/ be in the layout specified by
+--     @resolveImageLayout@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdBeginRendering-commandBuffer-parameter# @commandBuffer@
@@ -410,15 +464,15 @@
 -- per-device by that structure.
 --
 -- If multiview is enabled, and the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-render-areas multiviewPerViewRenderAreas>
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiviewPerViewRenderAreas 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.
+-- case, @renderArea@ /must/ be an area at least as large as the union of
+-- all the per-view render areas.
 --
 -- Each element of the @pColorAttachments@ array corresponds to an output
 -- location in the shader, i.e. if the shader declares an output variable
@@ -801,7 +855,7 @@
 --
 -- -   #VUID-VkRenderingInfo-imageView-06107# If the @imageView@ member of
 --     a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapNonSubsampledImages fragmentDensityMapNonSubsampledImages>
@@ -813,7 +867,7 @@
 --
 -- -   #VUID-VkRenderingInfo-imageView-06108# If the @imageView@ member of
 --     a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is not @0@,
 --     @imageView@ /must/ have a @layerCount@ greater than or equal to the
@@ -821,7 +875,7 @@
 --
 -- -   #VUID-VkRenderingInfo-imageView-06109# If the @imageView@ member of
 --     a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is @0@,
 --     @imageView@ /must/ have a @layerCount@ equal to @1@
@@ -831,7 +885,7 @@
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
 --     or its @deviceRenderAreaCount@ member is equal to 0 and the
 --     @imageView@ member of a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a
 --     width greater than or equal to
@@ -842,7 +896,7 @@
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
 --     or its @deviceRenderAreaCount@ member is equal to 0 and the
 --     @imageView@ member of a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a
 --     height greater than or equal to
@@ -852,7 +906,7 @@
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
 --     structure, its @deviceRenderAreaCount@ member is not 0, and the
 --     @imageView@ member of a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a
 --     width greater than or equal to
@@ -863,7 +917,7 @@
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
 --     structure, its @deviceRenderAreaCount@ member is not 0, and the
 --     @imageView@ member of a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a
 --     height greater than or equal to
@@ -872,50 +926,84 @@
 --
 -- -   #VUID-VkRenderingInfo-imageView-06116# If the @imageView@ member of
 --     a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to
 --     the @imageView@ or @resolveImageView@ member of @pDepthAttachment@,
 --     @pStencilAttachment@, or any element of @pColorAttachments@
 --
--- -   #VUID-VkRenderingInfo-pNext-06119# If the @pNext@ chain does not
---     contain
+-- -   #VUID-VkRenderingInfo-pNext-06119# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is not enabled or the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustFragmentShadingRateAttachmentAccess robustFragmentShadingRateAttachmentAccess>
+--     limit is 'Vulkan.Core10.FundamentalTypes.FALSE' or the @imageView@
+--     member of a
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     structure was created with
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@
+--     greater than 0, the @pNext@ chain does not contain
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
---     or its @deviceRenderAreaCount@ member is equal to 0 and the
+--     or its @deviceRenderAreaCount@ member is equal to 0, and the
 --     @imageView@ member of a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a
 --     width greater than or equal to
 --     \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\)
 --
--- -   #VUID-VkRenderingInfo-pNext-06121# If the @pNext@ chain does not
---     contain
+-- -   #VUID-VkRenderingInfo-pNext-06121# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is not enabled or the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustFragmentShadingRateAttachmentAccess robustFragmentShadingRateAttachmentAccess>
+--     limit is 'Vulkan.Core10.FundamentalTypes.FALSE' or the @imageView@
+--     member of a
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     structure was created with
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@
+--     greater than 0, the @pNext@ chain does not contain
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
 --     or its @deviceRenderAreaCount@ member is equal to 0 and the
 --     @imageView@ member of a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a
 --     height greater than or equal to
 --     \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\)
 --
--- -   #VUID-VkRenderingInfo-pNext-06120# If the @pNext@ chain contains a
+-- -   #VUID-VkRenderingInfo-pNext-06120# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is not enabled or the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustFragmentShadingRateAttachmentAccess robustFragmentShadingRateAttachmentAccess>
+--     limit is 'Vulkan.Core10.FundamentalTypes.FALSE' or the @imageView@
+--     member of a
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     structure was created with
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@
+--     greater than 0, the @pNext@ chain contains a
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
 --     structure, its @deviceRenderAreaCount@ member is not 0, and the
 --     @imageView@ member of a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a
 --     width greater than or equal to
 --     \(\left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\)
 --     for each element of @pDeviceRenderAreas@
 --
--- -   #VUID-VkRenderingInfo-pNext-06122# If the @pNext@ chain contains a
+-- -   #VUID-VkRenderingInfo-pNext-06122# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--     feature is not enabled or the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustFragmentShadingRateAttachmentAccess robustFragmentShadingRateAttachmentAccess>
+--     limit is 'Vulkan.Core10.FundamentalTypes.FALSE' or the @imageView@
+--     member of a
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     structure was created with
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@
+--     greater than 0, the @pNext@ chain contains a
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
 --     structure, its @deviceRenderAreaCount@ member is not 0, and the
 --     @imageView@ member of a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a
 --     height greater than or equal to
@@ -928,7 +1016,7 @@
 --
 -- -   #VUID-VkRenderingInfo-imageView-06123# If the @imageView@ member of
 --     a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is @0@,
 --     @imageView@ /must/ have a @layerCount@ that is either equal to @1@
@@ -936,7 +1024,7 @@
 --
 -- -   #VUID-VkRenderingInfo-imageView-06124# If the @imageView@ member of
 --     a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is not @0@,
 --     @imageView@ /must/ have a @layerCount@ that either equal to @1@ or
@@ -945,7 +1033,7 @@
 --
 -- -   #VUID-VkRenderingInfo-imageView-06125# If the @imageView@ member of
 --     a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to
 --     the @imageView@ or @resolveImageView@ member of @pDepthAttachment@,
@@ -953,11 +1041,11 @@
 --
 -- -   #VUID-VkRenderingInfo-imageView-06126# If the @imageView@ member of
 --     a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to
 --     the @imageView@ member of a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'
 --     structure included in the @pNext@ chain
 --
 -- -   #VUID-VkRenderingInfo-multiview-06127# If the
@@ -972,26 +1060,28 @@
 --     @perViewRenderAreaCount@ member of a
 --     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'
 --     structure included in the @pNext@ chain is not @0@, then the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-render-areas multiviewPerViewRenderAreas>
---     feature /must/ be enabled.
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiviewPerViewRenderAreas multiviewPerViewRenderAreas>
+--     feature /must/ be enabled
 --
 -- -   #VUID-VkRenderingInfo-perViewRenderAreaCount-07858# If the
 --     @perViewRenderAreaCount@ member of a
 --     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'
 --     structure included in the @pNext@ chain is not @0@, then
 --     @renderArea@ /must/ specify a render area that includes the union of
---     all per view render areas.
+--     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-flags-10012# If @flags@ includes
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_INLINE_BIT_KHR'
+--     then at least one of the following features /must/ be enabled
 --
+--     -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance7 maintenance7>
+--
+--     -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>
+--
 -- -   #VUID-VkRenderingInfo-pDepthAttachment-09318#
 --     @pDepthAttachment->resolveMode@ /must/ not be
 --     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
@@ -1008,13 +1098,13 @@
 -- -   #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@
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.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@
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
 --     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
 --
 -- -   #VUID-VkRenderingInfo-pNext-09535# If the @pNext@ chain contains a
@@ -1075,7 +1165,7 @@
 --
 -- -   #VUID-VkRenderingInfo-imageView-09485# If the @imageView@ member of
 --     a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ have been
 --     created with the
@@ -1083,7 +1173,7 @@
 --
 -- -   #VUID-VkRenderingInfo-imageView-09486# If the @imageView@ member of
 --     a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'
 --     structure included in the @pNext@ chain is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ have been
 --     created with the
@@ -1099,12 +1189,12 @@
 --     @NULL@ or a pointer to a valid instance of
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',
 --     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT',
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX',
+--     'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.MultiviewPerViewAttributesInfoNVX',
 --     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM',
 --     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM',
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT',
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT',
 --     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'
 --
 -- -   #VUID-VkRenderingInfo-sType-unique# The @sType@ value of each struct
 --     in the @pNext@ chain /must/ be unique
@@ -1262,8 +1352,6 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load operations>
 -- have completed.
 --
--- Note
---
 -- The resolve mode and store operation are independent; it is valid to
 -- write both resolved and unresolved values, and equally valid to discard
 -- the unresolved values while writing the resolved ones.
@@ -1438,9 +1526,9 @@
 --     @resolveImageLayout@ /must/ not be
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR'
 --
--- -   #VUID-VkRenderingAttachmentInfo-externalFormatResolve-09323# If
+-- -   #VUID-VkRenderingAttachmentInfo-externalFormatResolve-09323# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
---     is not enabled, @resolveMode@ /must/ not be
+--     feature is not enabled, @resolveMode@ /must/ not be
 --     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
 --
 -- -   #VUID-VkRenderingAttachmentInfo-resolveMode-09324# If @resolveMode@
diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs b/src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs
@@ -115,8 +115,6 @@
 -- These are properties of the integer dot product acceleration information
 -- of a physical device.
 --
--- Note
---
 -- A dot product operation is deemed accelerated if its implementation
 -- provides a performance advantage over application-provided code composed
 -- from elementary instructions and\/or other dot product instructions,
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
@@ -203,8 +203,6 @@
 -- /must/ not be used to wait on the result of a signal operation defined
 -- by 'cmdSetEvent2'.
 --
--- Note
---
 -- The extra information provided by 'cmdSetEvent2' compared to
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent' allows implementations
 -- to more efficiently schedule the operations required to satisfy the
@@ -403,11 +401,11 @@
 --     feature is not enabled, @stageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-vkCmdResetEvent2-stageMask-07316# If neither the
+-- -   #VUID-vkCmdResetEvent2-stageMask-07316# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @stageMask@ /must/ not contain
+--     features are enabled, @stageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-vkCmdResetEvent2-stageMask-04957# If the
@@ -422,9 +420,9 @@
 --
 -- -   #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>
---     are enabled, @stageMask@ /must/ not contain
+--     extension or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
+--     feature are enabled, @stageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
 --
 -- -   #VUID-vkCmdResetEvent2-synchronization2-03829# The
@@ -618,15 +616,11 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>
 -- than 'cmdWaitEvents2'.
 --
--- Note
---
 -- 'cmdWaitEvents2' is used with 'cmdSetEvent2' to define a memory
 -- dependency between two sets of action commands, roughly in the same way
 -- as pipeline barriers, but split into two commands such that work between
 -- the two /may/ execute unhindered.
 --
--- Note
---
 -- Applications should be careful to avoid race conditions when using
 -- events. There is no direct ordering guarantee between 'cmdSetEvent2' and
 -- 'cmdResetEvent2', 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent',
@@ -670,10 +664,9 @@
 --
 -- -   #VUID-vkCmdWaitEvents2-srcStageMask-03842# The @srcStageMask@ member
 --     of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or
---     @pImageMemoryBarriers@ members of @pDependencyInfos@ /must/ either
---     include only pipeline stages valid for the queue family that was
---     used to create the command pool that @commandBuffer@ was allocated
---     from
+--     @pImageMemoryBarriers@ members of @pDependencyInfos@ /must/ only
+--     include pipeline stages valid for the queue family that was used to
+--     create the command pool that @commandBuffer@ was allocated from
 --
 -- -   #VUID-vkCmdWaitEvents2-dstStageMask-03843# The @dstStageMask@ member
 --     of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or
@@ -808,12 +801,8 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
 --
 -- If 'cmdPipelineBarrier2' is recorded within a render pass instance, the
--- synchronization scopes are limited to operations within the same subpass
--- , or /must/ follow the restrictions for
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-explicit-renderpass-tileimage Tile Image Access Synchronization>
--- if the render pass instance was started with
--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
--- .
+-- synchronization scopes are limited to a subset of operations within the
+-- same subpass or render pass instance.
 --
 -- == Valid Usage
 --
@@ -917,6 +906,19 @@
 --     there /must/ be no buffer or image memory barriers specified by this
 --     command
 --
+-- -   #VUID-vkCmdPipelineBarrier2-None-09586# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingLocalRead dynamicRenderingLocalRead>
+--     feature is not enabled, and 'cmdPipelineBarrier2' is called within a
+--     render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     memory barriers specified by this command /must/ only include
+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',
+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',
+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',
+--     or
+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'
+--     in their access masks
+--
 -- -   #VUID-vkCmdPipelineBarrier2-image-09555# If 'cmdPipelineBarrier2' is
 --     called within a render pass instance started with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
@@ -937,20 +939,36 @@
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>
 --     feature /must/ be enabled
 --
--- -   #VUID-vkCmdPipelineBarrier2-srcStageMask-03849# The @srcStageMask@
---     member of any element of the @pMemoryBarriers@,
---     @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of
+-- -   #VUID-vkCmdPipelineBarrier2-srcStageMask-09673# The @srcStageMask@
+--     member of any element of the @pMemoryBarriers@ member of
 --     @pDependencyInfo@ /must/ only include pipeline stages valid for the
 --     queue family that was used to create the command pool that
 --     @commandBuffer@ was allocated from
 --
--- -   #VUID-vkCmdPipelineBarrier2-dstStageMask-03850# The @dstStageMask@
---     member of any element of the @pMemoryBarriers@,
---     @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of
+-- -   #VUID-vkCmdPipelineBarrier2-dstStageMask-09674# The @dstStageMask@
+--     member of any element of the @pMemoryBarriers@ member of
 --     @pDependencyInfo@ /must/ only include pipeline stages valid for the
 --     queue family that was used to create the command pool that
 --     @commandBuffer@ was allocated from
 --
+-- -   #VUID-vkCmdPipelineBarrier2-srcStageMask-09675# If a buffer or image
+--     memory barrier does not specify an
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire acquire operation>,
+--     the respective @srcStageMask@ member of the element of the
+--     @pBufferMemoryBarriers@ or @pImageMemoryBarriers@ members of
+--     @pDependencyInfo@ /must/ only include pipeline stages valid for the
+--     queue family that was used to create the command pool that
+--     @commandBuffer@ was allocated from
+--
+-- -   #VUID-vkCmdPipelineBarrier2-dstStageMask-09676# If a buffer or image
+--     memory barrier does not specify an
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release release operation>,
+--     the respective @dstStageMask@ member of the element of the
+--     @pBufferMemoryBarriers@ or @pImageMemoryBarriers@ members of
+--     @pDependencyInfo@ /must/ only include pipeline stages valid for the
+--     queue family that was used to create the command pool that
+--     @commandBuffer@ was allocated from
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdPipelineBarrier2-commandBuffer-parameter# @commandBuffer@
@@ -1083,9 +1101,9 @@
 -- -   #VUID-vkQueueSubmit2-commandBuffer-03867# If a command recorded into
 --     the @commandBuffer@ member of any element of the
 --     @pCommandBufferInfos@ member of any element of @pSubmits@ referenced
---     an 'Vulkan.Core10.Handles.Event', that event /must/ not be
---     referenced by a command that has been submitted to another queue and
---     is still in the /pending state/
+--     a 'Vulkan.Core10.Handles.Event', that event /must/ not be referenced
+--     by a command that has been submitted to another queue and is still
+--     in the /pending state/
 --
 -- -   #VUID-vkQueueSubmit2-semaphore-03868# The @semaphore@ member of any
 --     binary semaphore element of the @pSignalSemaphoreInfos@ member of
@@ -1156,9 +1174,9 @@
 -- -   #VUID-vkQueueSubmit2-commandBuffer-03879# If a command recorded into
 --     the @commandBuffer@ member of any element of the
 --     @pCommandBufferInfos@ member of any element of @pSubmits@ includes a
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire Queue Family Transfer Acquire Operation>,
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire Queue Family Ownership Transfer Acquire Operation>,
 --     there /must/ exist a previously submitted
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release Queue Family Transfer Release Operation>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release Queue Family Ownership Transfer Release Operation>
 --     on a queue in the queue family identified by the acquire operation,
 --     with parameters matching the acquire operation as defined in the
 --     definition of such
@@ -1290,8 +1308,6 @@
 -- <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@.
@@ -1312,8 +1328,6 @@
 -- <VkTimeDomainKHR.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
@@ -1383,11 +1397,11 @@
 --     feature is not enabled, @stage@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-vkCmdWriteTimestamp2-stage-07316# If neither the
+-- -   #VUID-vkCmdWriteTimestamp2-stage-07316# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @stage@ /must/ not contain
+--     features are enabled, @stage@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-vkCmdWriteTimestamp2-stage-04957# If the
@@ -1402,9 +1416,9 @@
 --
 -- -   #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>
---     are enabled, @stage@ /must/ not contain
+--     extension or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
+--     feature are enabled, @stage@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
 --
 -- -   #VUID-vkCmdWriteTimestamp2-synchronization2-03858# The
@@ -1577,11 +1591,11 @@
 --     feature is not enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-VkMemoryBarrier2-srcStageMask-07316# If neither the
+-- -   #VUID-VkMemoryBarrier2-srcStageMask-07316# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @srcStageMask@ /must/ not contain
+--     features are enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-VkMemoryBarrier2-srcStageMask-04957# If the
@@ -1596,9 +1610,9 @@
 --
 -- -   #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>
---     are enabled, @srcStageMask@ /must/ not contain
+--     extension or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
+--     feature are enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
 --
 -- -   #VUID-VkMemoryBarrier2-srcAccessMask-03900# If @srcAccessMask@
@@ -1972,11 +1986,11 @@
 --     feature is not enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-VkMemoryBarrier2-dstStageMask-07316# If neither the
+-- -   #VUID-VkMemoryBarrier2-dstStageMask-07316# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @dstStageMask@ /must/ not contain
+--     features are enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-VkMemoryBarrier2-dstStageMask-04957# If the
@@ -1991,9 +2005,9 @@
 --
 -- -   #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>
---     are enabled, @dstStageMask@ /must/ not contain
+--     extension or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
+--     feature are enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
 --
 -- -   #VUID-VkMemoryBarrier2-dstAccessMask-03900# If @dstAccessMask@
@@ -2433,7 +2447,7 @@
 -- This structure defines a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>
 -- limited to an image subresource range, and /can/ define a
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer operation>
 -- and
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>
 -- for that subresource range.
@@ -2461,20 +2475,21 @@
 -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and
 -- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, this memory
 -- barrier defines a
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>.
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer operation>.
 -- When executed on a queue in the family identified by
 -- @srcQueueFamilyIndex@, this barrier defines a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>
 -- for the specified image subresource range, and the second
--- synchronization and access scopes do not synchronize operations on that
--- queue. When executed on a queue in the family identified by
--- @dstQueueFamilyIndex@, this barrier defines a
+-- synchronization scope does not apply to this operation. When executed on
+-- a queue in the family identified by @dstQueueFamilyIndex@, this barrier
+-- defines a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>
--- for the specified image subresource range, and the first synchronization
--- and access scopes do not synchronize operations on that queue.
+-- for the specified image subresource range, and the first
+-- synchronization, the first synchronization scope does not apply to this
+-- operation.
 --
 -- A
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer operation>
 -- is also defined if the values are not equal, and either is one of the
 -- special queue family values reserved for external memory ownership
 -- transfers, as described in
@@ -2490,11 +2505,9 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>
 -- for the specified image subresource range. If this memory barrier
 -- defines a
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>,
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer operation>,
 -- the layout transition is only executed once between the queues.
 --
--- Note
---
 -- When the old and new layout are equal, the layout values are ignored -
 -- data is preserved no matter what values are specified, or what layout
 -- the image is currently in.
@@ -2547,11 +2560,11 @@
 --     feature is not enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-VkImageMemoryBarrier2-srcStageMask-07316# If neither the
+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-07316# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @srcStageMask@ /must/ not contain
+--     features are enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-VkImageMemoryBarrier2-srcStageMask-04957# If the
@@ -2566,9 +2579,9 @@
 --
 -- -   #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>
---     are enabled, @srcStageMask@ /must/ not contain
+--     extension or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
+--     feature are enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
 --
 -- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03900# If @srcAccessMask@
@@ -2942,11 +2955,11 @@
 --     feature is not enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-VkImageMemoryBarrier2-dstStageMask-07316# If neither the
+-- -   #VUID-VkImageMemoryBarrier2-dstStageMask-07316# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @dstStageMask@ /must/ not contain
+--     features are enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-VkImageMemoryBarrier2-dstStageMask-04957# If the
@@ -2961,9 +2974,9 @@
 --
 -- -   #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>
---     are enabled, @dstStageMask@ /must/ not contain
+--     extension or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
+--     feature are enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
 --
 -- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03900# If @dstAccessMask@
@@ -3598,6 +3611,17 @@
 --     @VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR@ then @image@ /must/ have been
 --     created with @VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR@
 --
+-- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-10287# 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>
+--     or @oldLayout@ and @newLayout@ define an
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,
+--     and @oldLayout@ or @newLayout@ is
+--     @VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR@ then @image@
+--     /must/ have been created with
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR@ or
+--     @VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR@
+--
 -- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07006# 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>
@@ -3726,6 +3750,10 @@
 --     or
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'
 --
+-- -   #VUID-VkImageMemoryBarrier2-subresourceRange-09601#
+--     @subresourceRange.aspectMask@ /must/ be valid for the @format@ the
+--     @image@ was created with
+--
 -- -   #VUID-VkImageMemoryBarrier2-srcStageMask-03854# If either
 --     @srcStageMask@ or @dstStageMask@ includes
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT',
@@ -3937,7 +3965,7 @@
 -- This structure defines a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>
 -- limited to a range of a buffer, and /can/ define a
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer operation>
 -- for that range.
 --
 -- The first
@@ -3963,20 +3991,19 @@
 -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and
 -- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, this memory
 -- barrier defines a
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>.
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer operation>.
 -- When executed on a queue in the family identified by
 -- @srcQueueFamilyIndex@, this barrier defines a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>
--- for the specified buffer range, and the second synchronization and
--- access scopes do not synchronize operations on that queue. When executed
--- on a queue in the family identified by @dstQueueFamilyIndex@, this
--- barrier defines a
+-- for the specified buffer range, and the second synchronization scope
+-- does not apply to this operation. When executed on a queue in the family
+-- identified by @dstQueueFamilyIndex@, this barrier defines a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>
--- for the specified buffer range, and the first synchronization and access
--- scopes do not synchronize operations on that queue.
+-- for the specified buffer range, and the first synchronization scope does
+-- not apply to this operation.
 --
 -- A
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer operation>
 -- is also defined if the values are not equal, and either is one of the
 -- special queue family values reserved for external memory ownership
 -- transfers, as described in
@@ -4026,11 +4053,11 @@
 --     feature is not enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-07316# If neither the
+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-07316# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @srcStageMask@ /must/ not contain
+--     features are enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-04957# If the
@@ -4045,9 +4072,9 @@
 --
 -- -   #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>
---     are enabled, @srcStageMask@ /must/ not contain
+--     extension or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
+--     feature are enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
 --
 -- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03900# If @srcAccessMask@
@@ -4421,11 +4448,11 @@
 --     feature is not enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-07316# If neither the
+-- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-07316# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @dstStageMask@ /must/ not contain
+--     features are enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-04957# If the
@@ -4440,9 +4467,9 @@
 --
 -- -   #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>
---     are enabled, @dstStageMask@ /must/ not contain
+--     extension or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
+--     feature are enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
 --
 -- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03900# If @dstAccessMask@
@@ -5023,7 +5050,7 @@
 -- This structure defines a set of
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependencies>,
 -- as well as
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operations>
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer operations>
 -- and
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>.
 --
@@ -5192,11 +5219,11 @@
 --     feature is not enabled, @stageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT'
 --
--- -   #VUID-VkSemaphoreSubmitInfo-stageMask-07316# If neither the
+-- -   #VUID-VkSemaphoreSubmitInfo-stageMask-07316# If neither of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @stageMask@ /must/ not contain
+--     features are enabled, @stageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-VkSemaphoreSubmitInfo-stageMask-04957# If the
@@ -5211,9 +5238,9 @@
 --
 -- -   #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>
---     are enabled, @stageMask@ /must/ not contain
+--     extension or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
+--     feature are enabled, @stageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
 --
 -- -   #VUID-VkSemaphoreSubmitInfo-device-03888# If the @device@ that
@@ -5334,7 +5361,9 @@
 -- -   #VUID-VkCommandBufferSubmitInfo-commandBuffer-09445# If any render
 --     pass instance in @commandBuffer@ was recorded with a
 --     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM'
---     structure in its pNext chain, a
+--     structure in its pNext chain and did not specify the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_RESUMING_BIT' flag,
+--     a
 --     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM'
 --     /must/ be included in the @pNext@ chain
 --
@@ -5345,7 +5374,8 @@
 --     /must/ be equal to the sum of the
 --     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM'::@stripeInfoCount@
 --     parameters provided to render pass instances recorded in
---     @commandBuffer@
+--     @commandBuffer@ that did not specify the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_RESUMING_BIT' flag
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Dynamic.hs b/src/Vulkan/Dynamic.hs
--- a/src/Vulkan/Dynamic.hs
+++ b/src/Vulkan/Dynamic.hs
@@ -45,6 +45,7 @@
 import {-# SOURCE #-} Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferPropertiesANDROID)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_android_surface (AndroidSurfaceCreateInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_anti_lag (AntiLagDataAMD)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (BaseOutStructure)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (BindAccelerationStructureMemoryInfoNV)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 (BindBufferMemoryInfo)
@@ -69,7 +70,7 @@
 import {-# SOURCE #-} Vulkan.Core10.Handles (BufferView)
 import {-# SOURCE #-} Vulkan.Core10.BufferView (BufferViewCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_calibrated_timestamps (CalibratedTimestampInfoKHR)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CheckpointData2NV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (CheckpointData2NV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (CheckpointDataNV)
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ClearAttachment)
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ClearColorValue)
@@ -92,6 +93,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_NV_cooperative_matrix2 (CooperativeMatrixFlexibleDimensionsPropertiesNV)
 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)
@@ -142,6 +144,8 @@
 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_depth_clamp_control (DepthClampModeEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_control (DepthClampRangeEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorBufferBindingInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorGetInfoEXT)
 import {-# SOURCE #-} Vulkan.Core10.Handles (DescriptorPool)
@@ -217,7 +221,9 @@
 import {-# SOURCE #-} Vulkan.Core10.Pass (FramebufferCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (FramebufferMixedSamplesCombinationNV)
 import {-# SOURCE #-} Vulkan.Core10.Enums.FrontFace (FrontFace)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (GeneratedCommandsInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GeneratedCommandsInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (GeneratedCommandsMemoryRequirementsInfoEXT)
 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)
@@ -262,8 +268,12 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (ImportSemaphoreWin32HandleInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (ImportSemaphoreZirconHandleInfoFUCHSIA)
 import {-# SOURCE #-} Vulkan.Core10.Enums.IndexType (IndexType)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectCommandsLayoutCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsLayoutCreateInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.Handles (IndirectCommandsLayoutEXT)
 import {-# SOURCE #-} Vulkan.Extensions.Handles (IndirectCommandsLayoutNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectExecutionSetCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.Handles (IndirectExecutionSetEXT)
 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)
@@ -282,7 +292,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryGetWin32HandleInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryGetZirconHandleInfoFUCHSIA)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (MemoryHostPointerPropertiesEXT)
-import {-# SOURCE #-} Vulkan.Core10.Enums.MemoryMapFlags (MemoryMapFlags)
+import {-# SOURCE #-} Vulkan.Core10.Enums.MemoryMapFlagBits (MemoryMapFlags)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_map_memory2 (MemoryMapInfoKHR)
 import {-# SOURCE #-} Vulkan.Core10.MemoryManagement (MemoryRequirements)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2)
@@ -336,9 +346,15 @@
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_tooling_info (PhysicalDeviceToolProperties)
 import {-# SOURCE #-} Vulkan.Core10.Handles (PhysicalDevice_T)
 import {-# SOURCE #-} Vulkan.Core10.Handles (Pipeline)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PipelineBinaryCreateInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PipelineBinaryDataInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PipelineBinaryHandlesInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.Handles (PipelineBinaryKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PipelineBinaryKeyKHR)
 import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)
 import {-# SOURCE #-} Vulkan.Core10.Handles (PipelineCache)
 import {-# SOURCE #-} Vulkan.Core10.PipelineCache (PipelineCacheCreateInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PipelineCreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableInternalRepresentationKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutablePropertiesKHR)
@@ -376,6 +392,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (RayTracingPipelineCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Rect2D)
 import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (RefreshCycleDurationGOOGLE)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (ReleaseCapturedPipelineDataInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (ReleaseSwapchainImagesInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (RemoteAddressNV)
 import {-# SOURCE #-} Vulkan.Core10.Handles (RenderPass)
@@ -460,6 +477,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_win32_surface (Win32SurfaceCreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_wayland_surface (Wl_display)
 import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (WriteDescriptorSet)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (WriteIndirectExecutionSetPipelineEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_generated_commands (WriteIndirectExecutionSetShaderEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (XcbSurfaceCreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (Xcb_connection_t)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (Xcb_visualid_t)
@@ -487,7 +506,7 @@
   , pVkGetDisplayModePropertiesKHR :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayModePropertiesKHR) -> IO Result)
   , pVkCreateDisplayModeKHR :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> ("pCreateInfo" ::: Ptr DisplayModeCreateInfoKHR) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pMode" ::: Ptr DisplayModeKHR) -> IO Result)
   , pVkGetDisplayPlaneCapabilitiesKHR :: FunPtr (Ptr PhysicalDevice_T -> DisplayModeKHR -> ("planeIndex" ::: Word32) -> ("pCapabilities" ::: Ptr DisplayPlaneCapabilitiesKHR) -> IO Result)
-  , pVkCreateDisplayPlaneSurfaceKHR :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr DisplaySurfaceCreateInfoKHR) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result)
+  , pVkCreateDisplayPlaneSurfaceKHR :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr (SomeStruct DisplaySurfaceCreateInfoKHR)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result)
   , pVkDestroySurfaceKHR :: FunPtr (Ptr Instance_T -> SurfaceKHR -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
   , pVkGetPhysicalDeviceSurfaceSupportKHR :: FunPtr (Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> SurfaceKHR -> ("pSupported" ::: Ptr Bool32) -> IO Result)
   , pVkGetPhysicalDeviceSurfaceCapabilitiesKHR :: FunPtr (Ptr PhysicalDevice_T -> SurfaceKHR -> ("pSurfaceCapabilities" ::: Ptr SurfaceCapabilitiesKHR) -> IO Result)
@@ -538,7 +557,7 @@
   , pVkGetPhysicalDeviceSurfaceFormats2KHR :: FunPtr (Ptr PhysicalDevice_T -> ("pSurfaceInfo" ::: Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR)) -> ("pSurfaceFormatCount" ::: Ptr Word32) -> ("pSurfaceFormats" ::: Ptr (SomeStruct SurfaceFormat2KHR)) -> IO Result)
   , pVkGetPhysicalDeviceDisplayProperties2KHR :: FunPtr (Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayProperties2KHR) -> IO Result)
   , pVkGetPhysicalDeviceDisplayPlaneProperties2KHR :: FunPtr (Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayPlaneProperties2KHR) -> IO Result)
-  , pVkGetDisplayModeProperties2KHR :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayModeProperties2KHR) -> IO Result)
+  , pVkGetDisplayModeProperties2KHR :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr (SomeStruct DisplayModeProperties2KHR)) -> IO Result)
   , pVkGetDisplayPlaneCapabilities2KHR :: FunPtr (Ptr PhysicalDevice_T -> ("pDisplayPlaneInfo" ::: Ptr DisplayPlaneInfo2KHR) -> ("pCapabilities" ::: Ptr DisplayPlaneCapabilities2KHR) -> IO Result)
   , pVkGetPhysicalDeviceCalibrateableTimeDomainsKHR :: FunPtr (Ptr PhysicalDevice_T -> ("pTimeDomainCount" ::: Ptr Word32) -> ("pTimeDomains" ::: Ptr TimeDomainKHR) -> IO Result)
   , pVkCreateDebugUtilsMessengerEXT :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr DebugUtilsMessengerCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pMessenger" ::: Ptr DebugUtilsMessengerEXT) -> IO Result)
@@ -556,6 +575,7 @@
   , 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)
+  , pVkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV :: FunPtr (Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV) -> IO Result)
   }
 
 deriving instance Eq InstanceCmds
@@ -650,7 +670,7 @@
     nullFunPtr
     nullFunPtr
     nullFunPtr
-    nullFunPtr nullFunPtr
+    nullFunPtr nullFunPtr nullFunPtr
 
 -- | A version of 'getInstanceProcAddr' which can be called
 -- with a null pointer for the instance.
@@ -771,6 +791,7 @@
   vkGetDrmDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkGetDrmDisplayEXT"#)
   vkGetPhysicalDeviceOpticalFlowImageFormatsNV <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceOpticalFlowImageFormatsNV"#)
   vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR"#)
+  vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV"#)
   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)
@@ -792,7 +813,7 @@
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> DisplayKHR -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayModePropertiesKHR) -> IO Result) vkGetDisplayModePropertiesKHR)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> DisplayKHR -> ("pCreateInfo" ::: Ptr DisplayModeCreateInfoKHR) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pMode" ::: Ptr DisplayModeKHR) -> IO Result) vkCreateDisplayModeKHR)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> DisplayModeKHR -> ("planeIndex" ::: Word32) -> ("pCapabilities" ::: Ptr DisplayPlaneCapabilitiesKHR) -> IO Result) vkGetDisplayPlaneCapabilitiesKHR)
-    (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr DisplaySurfaceCreateInfoKHR) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateDisplayPlaneSurfaceKHR)
+    (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr (SomeStruct DisplaySurfaceCreateInfoKHR)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateDisplayPlaneSurfaceKHR)
     (castFunPtr @_ @(Ptr Instance_T -> SurfaceKHR -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroySurfaceKHR)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> SurfaceKHR -> ("pSupported" ::: Ptr Bool32) -> IO Result) vkGetPhysicalDeviceSurfaceSupportKHR)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> SurfaceKHR -> ("pSurfaceCapabilities" ::: Ptr SurfaceCapabilitiesKHR) -> IO Result) vkGetPhysicalDeviceSurfaceCapabilitiesKHR)
@@ -843,7 +864,7 @@
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pSurfaceInfo" ::: Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR)) -> ("pSurfaceFormatCount" ::: Ptr Word32) -> ("pSurfaceFormats" ::: Ptr (SomeStruct SurfaceFormat2KHR)) -> IO Result) vkGetPhysicalDeviceSurfaceFormats2KHR)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayProperties2KHR) -> IO Result) vkGetPhysicalDeviceDisplayProperties2KHR)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayPlaneProperties2KHR) -> IO Result) vkGetPhysicalDeviceDisplayPlaneProperties2KHR)
-    (castFunPtr @_ @(Ptr PhysicalDevice_T -> DisplayKHR -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayModeProperties2KHR) -> IO Result) vkGetDisplayModeProperties2KHR)
+    (castFunPtr @_ @(Ptr PhysicalDevice_T -> DisplayKHR -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr (SomeStruct DisplayModeProperties2KHR)) -> IO Result) vkGetDisplayModeProperties2KHR)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pDisplayPlaneInfo" ::: Ptr DisplayPlaneInfo2KHR) -> ("pCapabilities" ::: Ptr DisplayPlaneCapabilities2KHR) -> IO Result) vkGetDisplayPlaneCapabilities2KHR)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pTimeDomainCount" ::: Ptr Word32) -> ("pTimeDomains" ::: Ptr TimeDomainKHR) -> IO Result) vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)
     (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr DebugUtilsMessengerCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pMessenger" ::: Ptr DebugUtilsMessengerEXT) -> IO Result) vkCreateDebugUtilsMessengerEXT)
@@ -861,6 +882,7 @@
     (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)
+    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV) -> IO Result) vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)
 
 data DeviceCmds = DeviceCmds
   { deviceCmdsHandle :: Ptr Device_T
@@ -914,6 +936,11 @@
   , pVkDestroyPipelineCache :: FunPtr (Ptr Device_T -> PipelineCache -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
   , pVkGetPipelineCacheData :: FunPtr (Ptr Device_T -> PipelineCache -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO Result)
   , pVkMergePipelineCaches :: FunPtr (Ptr Device_T -> ("dstCache" ::: PipelineCache) -> ("srcCacheCount" ::: Word32) -> ("pSrcCaches" ::: Ptr PipelineCache) -> IO Result)
+  , pVkCreatePipelineBinariesKHR :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr PipelineBinaryCreateInfoKHR) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pBinaries" ::: Ptr PipelineBinaryHandlesInfoKHR) -> IO Result)
+  , pVkDestroyPipelineBinaryKHR :: FunPtr (Ptr Device_T -> PipelineBinaryKHR -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
+  , pVkGetPipelineKeyKHR :: FunPtr (Ptr Device_T -> ("pPipelineCreateInfo" ::: Ptr PipelineCreateInfoKHR) -> ("pPipelineKey" ::: Ptr PipelineBinaryKeyKHR) -> IO Result)
+  , pVkGetPipelineBinaryDataKHR :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr PipelineBinaryDataInfoKHR) -> ("pPipelineBinaryKey" ::: Ptr PipelineBinaryKeyKHR) -> ("pPipelineBinaryDataSize" ::: Ptr CSize) -> ("pPipelineBinaryData" ::: Ptr ()) -> IO Result)
+  , pVkReleaseCapturedPipelineDataKHR :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr ReleaseCapturedPipelineDataInfoKHR) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO Result)
   , pVkCreateGraphicsPipelines :: FunPtr (Ptr Device_T -> PipelineCache -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct GraphicsPipelineCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPipelines" ::: Ptr Pipeline) -> IO Result)
   , pVkCreateComputePipelines :: FunPtr (Ptr Device_T -> PipelineCache -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct ComputePipelineCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPipelines" ::: Ptr Pipeline) -> IO Result)
   , pVkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI :: FunPtr (Ptr Device_T -> RenderPass -> ("pMaxWorkgroupSize" ::: Ptr Extent2D) -> IO Result)
@@ -1017,6 +1044,15 @@
   , pVkGetGeneratedCommandsMemoryRequirementsNV :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr GeneratedCommandsMemoryRequirementsInfoNV) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ())
   , pVkCreateIndirectCommandsLayoutNV :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr IndirectCommandsLayoutCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pIndirectCommandsLayout" ::: Ptr IndirectCommandsLayoutNV) -> IO Result)
   , pVkDestroyIndirectCommandsLayoutNV :: FunPtr (Ptr Device_T -> IndirectCommandsLayoutNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
+  , pVkCmdExecuteGeneratedCommandsEXT :: FunPtr (Ptr CommandBuffer_T -> ("isPreprocessed" ::: Bool32) -> ("pGeneratedCommandsInfo" ::: Ptr (SomeStruct GeneratedCommandsInfoEXT)) -> IO ())
+  , pVkCmdPreprocessGeneratedCommandsEXT :: FunPtr (Ptr CommandBuffer_T -> ("pGeneratedCommandsInfo" ::: Ptr (SomeStruct GeneratedCommandsInfoEXT)) -> ("stateCommandBuffer" ::: Ptr CommandBuffer_T) -> IO ())
+  , pVkGetGeneratedCommandsMemoryRequirementsEXT :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr (SomeStruct GeneratedCommandsMemoryRequirementsInfoEXT)) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ())
+  , pVkCreateIndirectCommandsLayoutEXT :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct IndirectCommandsLayoutCreateInfoEXT)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pIndirectCommandsLayout" ::: Ptr IndirectCommandsLayoutEXT) -> IO Result)
+  , pVkDestroyIndirectCommandsLayoutEXT :: FunPtr (Ptr Device_T -> IndirectCommandsLayoutEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
+  , pVkCreateIndirectExecutionSetEXT :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr IndirectExecutionSetCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pIndirectExecutionSet" ::: Ptr IndirectExecutionSetEXT) -> IO Result)
+  , pVkDestroyIndirectExecutionSetEXT :: FunPtr (Ptr Device_T -> IndirectExecutionSetEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
+  , pVkUpdateIndirectExecutionSetPipelineEXT :: FunPtr (Ptr Device_T -> IndirectExecutionSetEXT -> ("executionSetWriteCount" ::: Word32) -> ("pExecutionSetWrites" ::: Ptr WriteIndirectExecutionSetPipelineEXT) -> IO ())
+  , pVkUpdateIndirectExecutionSetShaderEXT :: FunPtr (Ptr Device_T -> IndirectExecutionSetEXT -> ("executionSetWriteCount" ::: Word32) -> ("pExecutionSetWrites" ::: Ptr WriteIndirectExecutionSetShaderEXT) -> IO ())
   , pVkCmdPushDescriptorSetKHR :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> ("set" ::: Word32) -> ("descriptorWriteCount" ::: Word32) -> ("pDescriptorWrites" ::: Ptr (SomeStruct WriteDescriptorSet)) -> IO ())
   , pVkTrimCommandPool :: FunPtr (Ptr Device_T -> CommandPool -> CommandPoolTrimFlags -> IO ())
   , pVkGetMemoryWin32HandleKHR :: FunPtr (Ptr Device_T -> ("pGetWin32HandleInfo" ::: Ptr MemoryGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO Result)
@@ -1052,7 +1088,7 @@
   , pVkDestroyDescriptorUpdateTemplate :: FunPtr (Ptr Device_T -> DescriptorUpdateTemplate -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
   , pVkUpdateDescriptorSetWithTemplate :: FunPtr (Ptr Device_T -> DescriptorSet -> DescriptorUpdateTemplate -> ("pData" ::: Ptr ()) -> IO ())
   , pVkCmdPushDescriptorSetWithTemplateKHR :: FunPtr (Ptr CommandBuffer_T -> DescriptorUpdateTemplate -> PipelineLayout -> ("set" ::: Word32) -> ("pData" ::: Ptr ()) -> IO ())
-  , pVkSetHdrMetadataEXT :: FunPtr (Ptr Device_T -> ("swapchainCount" ::: Word32) -> ("pSwapchains" ::: Ptr SwapchainKHR) -> ("pMetadata" ::: Ptr HdrMetadataEXT) -> IO ())
+  , pVkSetHdrMetadataEXT :: FunPtr (Ptr Device_T -> ("swapchainCount" ::: Word32) -> ("pSwapchains" ::: Ptr SwapchainKHR) -> ("pMetadata" ::: Ptr (SomeStruct HdrMetadataEXT)) -> IO ())
   , pVkGetSwapchainStatusKHR :: FunPtr (Ptr Device_T -> SwapchainKHR -> IO Result)
   , pVkGetRefreshCycleDurationGOOGLE :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("pDisplayTimingProperties" ::: Ptr RefreshCycleDurationGOOGLE) -> IO Result)
   , pVkGetPastPresentationTimingGOOGLE :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("pPresentationTimingCount" ::: Ptr Word32) -> ("pPresentationTimings" ::: Ptr PastPresentationTimingGOOGLE) -> IO Result)
@@ -1149,6 +1185,7 @@
   , pVkGetRayTracingShaderGroupStackSizeKHR :: FunPtr (Ptr Device_T -> Pipeline -> ("group" ::: Word32) -> ShaderGroupShaderKHR -> IO DeviceSize)
   , pVkCmdSetRayTracingPipelineStackSizeKHR :: FunPtr (Ptr CommandBuffer_T -> ("pipelineStackSize" ::: Word32) -> IO ())
   , pVkGetImageViewHandleNVX :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr ImageViewHandleInfoNVX) -> IO Word32)
+  , pVkGetImageViewHandle64NVX :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr ImageViewHandleInfoNVX) -> IO Word64)
   , pVkGetImageViewAddressNVX :: FunPtr (Ptr Device_T -> ImageView -> ("pProperties" ::: Ptr ImageViewAddressPropertiesNVX) -> IO Result)
   , pVkGetDeviceGroupSurfacePresentModes2EXT :: FunPtr (Ptr Device_T -> ("pSurfaceInfo" ::: Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR)) -> ("pModes" ::: Ptr DeviceGroupPresentModeFlagsKHR) -> IO Result)
   , pVkAcquireFullScreenExclusiveModeEXT :: FunPtr (Ptr Device_T -> SwapchainKHR -> IO Result)
@@ -1184,6 +1221,7 @@
   , 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)
+  , pVkAntiLagUpdateAMD :: FunPtr (Ptr Device_T -> ("pData" ::: Ptr AntiLagDataAMD) -> IO ())
   , pVkCmdSetCullMode :: FunPtr (Ptr CommandBuffer_T -> CullModeFlags -> IO ())
   , pVkCmdSetFrontFace :: FunPtr (Ptr CommandBuffer_T -> FrontFace -> IO ())
   , pVkCmdSetPrimitiveTopology :: FunPtr (Ptr CommandBuffer_T -> PrimitiveTopology -> IO ())
@@ -1262,7 +1300,7 @@
   , 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)
+  , pVkCreateCuModuleNVX :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct CuModuleCreateInfoNVX)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CuModuleNVX) -> IO Result)
   , pVkCreateCuFunctionNVX :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr CuFunctionCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pFunction" ::: Ptr CuFunctionNVX) -> IO Result)
   , pVkDestroyCuModuleNVX :: FunPtr (Ptr Device_T -> CuModuleNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
   , pVkDestroyCuFunctionNVX :: FunPtr (Ptr Device_T -> CuFunctionNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
@@ -1324,7 +1362,7 @@
   , 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)
+  , pVkMapMemory2KHR :: FunPtr (Ptr Device_T -> ("pMemoryMapInfo" ::: Ptr (SomeStruct 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 ())
@@ -1334,10 +1372,10 @@
   , 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 ())
+  , pVkCmdInitializeGraphScratchMemoryAMDX :: FunPtr (Ptr CommandBuffer_T -> ("executionGraph" ::: Pipeline) -> ("scratch" ::: DeviceAddress) -> ("scratchSize" ::: DeviceSize) -> IO ())
+  , pVkCmdDispatchGraphAMDX :: FunPtr (Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("scratchSize" ::: DeviceSize) -> ("pCountInfo" ::: Ptr DispatchGraphCountInfoAMDX) -> IO ())
+  , pVkCmdDispatchGraphIndirectAMDX :: FunPtr (Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("scratchSize" ::: DeviceSize) -> ("pCountInfo" ::: Ptr DispatchGraphCountInfoAMDX) -> IO ())
+  , pVkCmdDispatchGraphIndirectCountAMDX :: FunPtr (Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("scratchSize" ::: DeviceSize) -> ("countInfo" ::: DeviceAddress) -> IO ())
   , pVkCmdBindDescriptorSets2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pBindDescriptorSetsInfo" ::: Ptr (SomeStruct BindDescriptorSetsInfoKHR)) -> IO ())
   , pVkCmdPushConstants2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pPushConstantsInfo" ::: Ptr (SomeStruct PushConstantsInfoKHR)) -> IO ())
   , pVkCmdPushDescriptorSet2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pPushDescriptorSetInfo" ::: Ptr (SomeStruct PushDescriptorSetInfoKHR)) -> IO ())
@@ -1350,7 +1388,8 @@
   , pVkGetLatencyTimingsNV :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("pLatencyMarkerInfo" ::: Ptr GetLatencyMarkerInfoNV) -> IO ())
   , pVkQueueNotifyOutOfBandNV :: FunPtr (Ptr Queue_T -> ("pQueueTypeInfo" ::: Ptr OutOfBandQueueTypeInfoNV) -> IO ())
   , pVkCmdSetRenderingAttachmentLocationsKHR :: FunPtr (Ptr CommandBuffer_T -> ("pLocationInfo" ::: Ptr RenderingAttachmentLocationInfoKHR) -> IO ())
-  , pVkCmdSetRenderingInputAttachmentIndicesKHR :: FunPtr (Ptr CommandBuffer_T -> ("pLocationInfo" ::: Ptr RenderingInputAttachmentIndexInfoKHR) -> IO ())
+  , pVkCmdSetRenderingInputAttachmentIndicesKHR :: FunPtr (Ptr CommandBuffer_T -> ("pInputAttachmentIndexInfo" ::: Ptr RenderingInputAttachmentIndexInfoKHR) -> IO ())
+  , pVkCmdSetDepthClampRangeEXT :: FunPtr (Ptr CommandBuffer_T -> DepthClampModeEXT -> ("pDepthClampRange" ::: Ptr DepthClampRangeEXT) -> IO ())
   }
 
 deriving instance Eq DeviceCmds
@@ -1845,6 +1884,23 @@
     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)
@@ -1916,6 +1972,11 @@
   vkDestroyPipelineCache <- getDeviceProcAddr' handle (Ptr "vkDestroyPipelineCache"#)
   vkGetPipelineCacheData <- getDeviceProcAddr' handle (Ptr "vkGetPipelineCacheData"#)
   vkMergePipelineCaches <- getDeviceProcAddr' handle (Ptr "vkMergePipelineCaches"#)
+  vkCreatePipelineBinariesKHR <- getDeviceProcAddr' handle (Ptr "vkCreatePipelineBinariesKHR"#)
+  vkDestroyPipelineBinaryKHR <- getDeviceProcAddr' handle (Ptr "vkDestroyPipelineBinaryKHR"#)
+  vkGetPipelineKeyKHR <- getDeviceProcAddr' handle (Ptr "vkGetPipelineKeyKHR"#)
+  vkGetPipelineBinaryDataKHR <- getDeviceProcAddr' handle (Ptr "vkGetPipelineBinaryDataKHR"#)
+  vkReleaseCapturedPipelineDataKHR <- getDeviceProcAddr' handle (Ptr "vkReleaseCapturedPipelineDataKHR"#)
   vkCreateGraphicsPipelines <- getDeviceProcAddr' handle (Ptr "vkCreateGraphicsPipelines"#)
   vkCreateComputePipelines <- getDeviceProcAddr' handle (Ptr "vkCreateComputePipelines"#)
   vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI <- getDeviceProcAddr' handle (Ptr "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"#)
@@ -2019,6 +2080,15 @@
   vkGetGeneratedCommandsMemoryRequirementsNV <- getDeviceProcAddr' handle (Ptr "vkGetGeneratedCommandsMemoryRequirementsNV"#)
   vkCreateIndirectCommandsLayoutNV <- getDeviceProcAddr' handle (Ptr "vkCreateIndirectCommandsLayoutNV"#)
   vkDestroyIndirectCommandsLayoutNV <- getDeviceProcAddr' handle (Ptr "vkDestroyIndirectCommandsLayoutNV"#)
+  vkCmdExecuteGeneratedCommandsEXT <- getDeviceProcAddr' handle (Ptr "vkCmdExecuteGeneratedCommandsEXT"#)
+  vkCmdPreprocessGeneratedCommandsEXT <- getDeviceProcAddr' handle (Ptr "vkCmdPreprocessGeneratedCommandsEXT"#)
+  vkGetGeneratedCommandsMemoryRequirementsEXT <- getDeviceProcAddr' handle (Ptr "vkGetGeneratedCommandsMemoryRequirementsEXT"#)
+  vkCreateIndirectCommandsLayoutEXT <- getDeviceProcAddr' handle (Ptr "vkCreateIndirectCommandsLayoutEXT"#)
+  vkDestroyIndirectCommandsLayoutEXT <- getDeviceProcAddr' handle (Ptr "vkDestroyIndirectCommandsLayoutEXT"#)
+  vkCreateIndirectExecutionSetEXT <- getDeviceProcAddr' handle (Ptr "vkCreateIndirectExecutionSetEXT"#)
+  vkDestroyIndirectExecutionSetEXT <- getDeviceProcAddr' handle (Ptr "vkDestroyIndirectExecutionSetEXT"#)
+  vkUpdateIndirectExecutionSetPipelineEXT <- getDeviceProcAddr' handle (Ptr "vkUpdateIndirectExecutionSetPipelineEXT"#)
+  vkUpdateIndirectExecutionSetShaderEXT <- getDeviceProcAddr' handle (Ptr "vkUpdateIndirectExecutionSetShaderEXT"#)
   vkCmdPushDescriptorSetKHR <- getDeviceProcAddr' handle (Ptr "vkCmdPushDescriptorSetKHR"#)
   vkTrimCommandPool <- getFirstDeviceProcAddr [ (Ptr "vkTrimCommandPoolKHR"#)
                                               , (Ptr "vkTrimCommandPool"#) ]
@@ -2182,6 +2252,7 @@
   vkGetRayTracingShaderGroupStackSizeKHR <- getDeviceProcAddr' handle (Ptr "vkGetRayTracingShaderGroupStackSizeKHR"#)
   vkCmdSetRayTracingPipelineStackSizeKHR <- getDeviceProcAddr' handle (Ptr "vkCmdSetRayTracingPipelineStackSizeKHR"#)
   vkGetImageViewHandleNVX <- getDeviceProcAddr' handle (Ptr "vkGetImageViewHandleNVX"#)
+  vkGetImageViewHandle64NVX <- getDeviceProcAddr' handle (Ptr "vkGetImageViewHandle64NVX"#)
   vkGetImageViewAddressNVX <- getDeviceProcAddr' handle (Ptr "vkGetImageViewAddressNVX"#)
   vkGetDeviceGroupSurfacePresentModes2EXT <- getDeviceProcAddr' handle (Ptr "vkGetDeviceGroupSurfacePresentModes2EXT"#)
   vkAcquireFullScreenExclusiveModeEXT <- getDeviceProcAddr' handle (Ptr "vkAcquireFullScreenExclusiveModeEXT"#)
@@ -2222,6 +2293,7 @@
   vkDeferredOperationJoinKHR <- getDeviceProcAddr' handle (Ptr "vkDeferredOperationJoinKHR"#)
   vkGetPipelineIndirectMemoryRequirementsNV <- getDeviceProcAddr' handle (Ptr "vkGetPipelineIndirectMemoryRequirementsNV"#)
   vkGetPipelineIndirectDeviceAddressNV <- getDeviceProcAddr' handle (Ptr "vkGetPipelineIndirectDeviceAddressNV"#)
+  vkAntiLagUpdateAMD <- getDeviceProcAddr' handle (Ptr "vkAntiLagUpdateAMD"#)
   vkCmdSetCullMode <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetCullModeEXT"#)
                                              , (Ptr "vkCmdSetCullMode"#) ]
   vkCmdSetFrontFace <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetFrontFaceEXT"#)
@@ -2423,6 +2495,7 @@
   vkQueueNotifyOutOfBandNV <- getDeviceProcAddr' handle (Ptr "vkQueueNotifyOutOfBandNV"#)
   vkCmdSetRenderingAttachmentLocationsKHR <- getDeviceProcAddr' handle (Ptr "vkCmdSetRenderingAttachmentLocationsKHR"#)
   vkCmdSetRenderingInputAttachmentIndicesKHR <- getDeviceProcAddr' handle (Ptr "vkCmdSetRenderingInputAttachmentIndicesKHR"#)
+  vkCmdSetDepthClampRangeEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthClampRangeEXT"#)
   pure $ DeviceCmds handle
     (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr)
     (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice)
@@ -2474,6 +2547,11 @@
     (castFunPtr @_ @(Ptr Device_T -> PipelineCache -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyPipelineCache)
     (castFunPtr @_ @(Ptr Device_T -> PipelineCache -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO Result) vkGetPipelineCacheData)
     (castFunPtr @_ @(Ptr Device_T -> ("dstCache" ::: PipelineCache) -> ("srcCacheCount" ::: Word32) -> ("pSrcCaches" ::: Ptr PipelineCache) -> IO Result) vkMergePipelineCaches)
+    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr PipelineBinaryCreateInfoKHR) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pBinaries" ::: Ptr PipelineBinaryHandlesInfoKHR) -> IO Result) vkCreatePipelineBinariesKHR)
+    (castFunPtr @_ @(Ptr Device_T -> PipelineBinaryKHR -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyPipelineBinaryKHR)
+    (castFunPtr @_ @(Ptr Device_T -> ("pPipelineCreateInfo" ::: Ptr PipelineCreateInfoKHR) -> ("pPipelineKey" ::: Ptr PipelineBinaryKeyKHR) -> IO Result) vkGetPipelineKeyKHR)
+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr PipelineBinaryDataInfoKHR) -> ("pPipelineBinaryKey" ::: Ptr PipelineBinaryKeyKHR) -> ("pPipelineBinaryDataSize" ::: Ptr CSize) -> ("pPipelineBinaryData" ::: Ptr ()) -> IO Result) vkGetPipelineBinaryDataKHR)
+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr ReleaseCapturedPipelineDataInfoKHR) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO Result) vkReleaseCapturedPipelineDataKHR)
     (castFunPtr @_ @(Ptr Device_T -> PipelineCache -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct GraphicsPipelineCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPipelines" ::: Ptr Pipeline) -> IO Result) vkCreateGraphicsPipelines)
     (castFunPtr @_ @(Ptr Device_T -> PipelineCache -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct ComputePipelineCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPipelines" ::: Ptr Pipeline) -> IO Result) vkCreateComputePipelines)
     (castFunPtr @_ @(Ptr Device_T -> RenderPass -> ("pMaxWorkgroupSize" ::: Ptr Extent2D) -> IO Result) vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)
@@ -2577,6 +2655,15 @@
     (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr GeneratedCommandsMemoryRequirementsInfoNV) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetGeneratedCommandsMemoryRequirementsNV)
     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr IndirectCommandsLayoutCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pIndirectCommandsLayout" ::: Ptr IndirectCommandsLayoutNV) -> IO Result) vkCreateIndirectCommandsLayoutNV)
     (castFunPtr @_ @(Ptr Device_T -> IndirectCommandsLayoutNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyIndirectCommandsLayoutNV)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("isPreprocessed" ::: Bool32) -> ("pGeneratedCommandsInfo" ::: Ptr (SomeStruct GeneratedCommandsInfoEXT)) -> IO ()) vkCmdExecuteGeneratedCommandsEXT)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pGeneratedCommandsInfo" ::: Ptr (SomeStruct GeneratedCommandsInfoEXT)) -> ("stateCommandBuffer" ::: Ptr CommandBuffer_T) -> IO ()) vkCmdPreprocessGeneratedCommandsEXT)
+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr (SomeStruct GeneratedCommandsMemoryRequirementsInfoEXT)) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetGeneratedCommandsMemoryRequirementsEXT)
+    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct IndirectCommandsLayoutCreateInfoEXT)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pIndirectCommandsLayout" ::: Ptr IndirectCommandsLayoutEXT) -> IO Result) vkCreateIndirectCommandsLayoutEXT)
+    (castFunPtr @_ @(Ptr Device_T -> IndirectCommandsLayoutEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyIndirectCommandsLayoutEXT)
+    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr IndirectExecutionSetCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pIndirectExecutionSet" ::: Ptr IndirectExecutionSetEXT) -> IO Result) vkCreateIndirectExecutionSetEXT)
+    (castFunPtr @_ @(Ptr Device_T -> IndirectExecutionSetEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyIndirectExecutionSetEXT)
+    (castFunPtr @_ @(Ptr Device_T -> IndirectExecutionSetEXT -> ("executionSetWriteCount" ::: Word32) -> ("pExecutionSetWrites" ::: Ptr WriteIndirectExecutionSetPipelineEXT) -> IO ()) vkUpdateIndirectExecutionSetPipelineEXT)
+    (castFunPtr @_ @(Ptr Device_T -> IndirectExecutionSetEXT -> ("executionSetWriteCount" ::: Word32) -> ("pExecutionSetWrites" ::: Ptr WriteIndirectExecutionSetShaderEXT) -> IO ()) vkUpdateIndirectExecutionSetShaderEXT)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> ("set" ::: Word32) -> ("descriptorWriteCount" ::: Word32) -> ("pDescriptorWrites" ::: Ptr (SomeStruct WriteDescriptorSet)) -> IO ()) vkCmdPushDescriptorSetKHR)
     (castFunPtr @_ @(Ptr Device_T -> CommandPool -> CommandPoolTrimFlags -> IO ()) vkTrimCommandPool)
     (castFunPtr @_ @(Ptr Device_T -> ("pGetWin32HandleInfo" ::: Ptr MemoryGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO Result) vkGetMemoryWin32HandleKHR)
@@ -2612,7 +2699,7 @@
     (castFunPtr @_ @(Ptr Device_T -> DescriptorUpdateTemplate -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDescriptorUpdateTemplate)
     (castFunPtr @_ @(Ptr Device_T -> DescriptorSet -> DescriptorUpdateTemplate -> ("pData" ::: Ptr ()) -> IO ()) vkUpdateDescriptorSetWithTemplate)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> DescriptorUpdateTemplate -> PipelineLayout -> ("set" ::: Word32) -> ("pData" ::: Ptr ()) -> IO ()) vkCmdPushDescriptorSetWithTemplateKHR)
-    (castFunPtr @_ @(Ptr Device_T -> ("swapchainCount" ::: Word32) -> ("pSwapchains" ::: Ptr SwapchainKHR) -> ("pMetadata" ::: Ptr HdrMetadataEXT) -> IO ()) vkSetHdrMetadataEXT)
+    (castFunPtr @_ @(Ptr Device_T -> ("swapchainCount" ::: Word32) -> ("pSwapchains" ::: Ptr SwapchainKHR) -> ("pMetadata" ::: Ptr (SomeStruct HdrMetadataEXT)) -> IO ()) vkSetHdrMetadataEXT)
     (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> IO Result) vkGetSwapchainStatusKHR)
     (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("pDisplayTimingProperties" ::: Ptr RefreshCycleDurationGOOGLE) -> IO Result) vkGetRefreshCycleDurationGOOGLE)
     (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("pPresentationTimingCount" ::: Ptr Word32) -> ("pPresentationTimings" ::: Ptr PastPresentationTimingGOOGLE) -> IO Result) vkGetPastPresentationTimingGOOGLE)
@@ -2709,6 +2796,7 @@
     (castFunPtr @_ @(Ptr Device_T -> Pipeline -> ("group" ::: Word32) -> ShaderGroupShaderKHR -> IO DeviceSize) vkGetRayTracingShaderGroupStackSizeKHR)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pipelineStackSize" ::: Word32) -> IO ()) vkCmdSetRayTracingPipelineStackSizeKHR)
     (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr ImageViewHandleInfoNVX) -> IO Word32) vkGetImageViewHandleNVX)
+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr ImageViewHandleInfoNVX) -> IO Word64) vkGetImageViewHandle64NVX)
     (castFunPtr @_ @(Ptr Device_T -> ImageView -> ("pProperties" ::: Ptr ImageViewAddressPropertiesNVX) -> IO Result) vkGetImageViewAddressNVX)
     (castFunPtr @_ @(Ptr Device_T -> ("pSurfaceInfo" ::: Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR)) -> ("pModes" ::: Ptr DeviceGroupPresentModeFlagsKHR) -> IO Result) vkGetDeviceGroupSurfacePresentModes2EXT)
     (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> IO Result) vkAcquireFullScreenExclusiveModeEXT)
@@ -2744,6 +2832,7 @@
     (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 Device_T -> ("pData" ::: Ptr AntiLagDataAMD) -> IO ()) vkAntiLagUpdateAMD)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> CullModeFlags -> IO ()) vkCmdSetCullMode)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> FrontFace -> IO ()) vkCmdSetFrontFace)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) vkCmdSetPrimitiveTopology)
@@ -2822,7 +2911,7 @@
     (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)
+    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct CuModuleCreateInfoNVX)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CuModuleNVX) -> IO Result) vkCreateCuModuleNVX)
     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr CuFunctionCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pFunction" ::: Ptr CuFunctionNVX) -> IO Result) vkCreateCuFunctionNVX)
     (castFunPtr @_ @(Ptr Device_T -> CuModuleNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCuModuleNVX)
     (castFunPtr @_ @(Ptr Device_T -> CuFunctionNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCuFunctionNVX)
@@ -2884,7 +2973,7 @@
     (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 -> ("pMemoryMapInfo" ::: Ptr (SomeStruct 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)
@@ -2894,10 +2983,10 @@
     (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 CommandBuffer_T -> ("executionGraph" ::: Pipeline) -> ("scratch" ::: DeviceAddress) -> ("scratchSize" ::: DeviceSize) -> IO ()) vkCmdInitializeGraphScratchMemoryAMDX)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("scratchSize" ::: DeviceSize) -> ("pCountInfo" ::: Ptr DispatchGraphCountInfoAMDX) -> IO ()) vkCmdDispatchGraphAMDX)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("scratchSize" ::: DeviceSize) -> ("pCountInfo" ::: Ptr DispatchGraphCountInfoAMDX) -> IO ()) vkCmdDispatchGraphIndirectAMDX)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("scratchSize" ::: DeviceSize) -> ("countInfo" ::: DeviceAddress) -> IO ()) vkCmdDispatchGraphIndirectCountAMDX)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pBindDescriptorSetsInfo" ::: Ptr (SomeStruct BindDescriptorSetsInfoKHR)) -> IO ()) vkCmdBindDescriptorSets2KHR)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pPushConstantsInfo" ::: Ptr (SomeStruct PushConstantsInfoKHR)) -> IO ()) vkCmdPushConstants2KHR)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pPushDescriptorSetInfo" ::: Ptr (SomeStruct PushDescriptorSetInfoKHR)) -> IO ()) vkCmdPushDescriptorSet2KHR)
@@ -2910,5 +2999,6 @@
     (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("pLatencyMarkerInfo" ::: Ptr GetLatencyMarkerInfoNV) -> IO ()) vkGetLatencyTimingsNV)
     (castFunPtr @_ @(Ptr Queue_T -> ("pQueueTypeInfo" ::: Ptr OutOfBandQueueTypeInfoNV) -> IO ()) vkQueueNotifyOutOfBandNV)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pLocationInfo" ::: Ptr RenderingAttachmentLocationInfoKHR) -> IO ()) vkCmdSetRenderingAttachmentLocationsKHR)
-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pLocationInfo" ::: Ptr RenderingInputAttachmentIndexInfoKHR) -> IO ()) vkCmdSetRenderingInputAttachmentIndicesKHR)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pInputAttachmentIndexInfo" ::: Ptr RenderingInputAttachmentIndexInfoKHR) -> IO ()) vkCmdSetRenderingInputAttachmentIndicesKHR)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> DepthClampModeEXT -> ("pDepthClampRange" ::: Ptr DepthClampRangeEXT) -> IO ()) vkCmdSetDepthClampRangeEXT)
 
diff --git a/src/Vulkan/Exception.hs b/src/Vulkan/Exception.hs
--- a/src/Vulkan/Exception.hs
+++ b/src/Vulkan/Exception.hs
@@ -35,13 +35,16 @@
   ERROR_FORMAT_NOT_SUPPORTED -> "A requested format is not supported on this device"
   ERROR_FRAGMENTED_POOL -> "A pool allocation has failed due to fragmentation of the pool's memory"
   ERROR_UNKNOWN -> "An unknown error has occurred; either the application has provided invalid input, or an implementation failure has occurred"
-  ERROR_INCOMPATIBLE_SHADER_BINARY_EXT -> "The provided binary shader code is not compatible with this device"
+  ERROR_NOT_ENOUGH_SPACE_KHR -> "The application did not provide enough space to return all the required data"
+  PIPELINE_BINARY_MISSING_KHR -> "The application attempted to create a pipeline binary by querying an internal cache, but the internal cache entry did not exist"
+  INCOMPATIBLE_SHADER_BINARY_EXT -> "The provided binary shader code is not compatible with this device"
   ERROR_COMPRESSION_EXHAUSTED_EXT -> "An image creation failed because internal resources required for compression are exhausted"
   OPERATION_NOT_DEFERRED_KHR -> "A deferred operation was requested and no operations were deferred"
   OPERATION_DEFERRED_KHR -> "A deferred operation was requested and at least some of the work was deferred"
   THREAD_DONE_KHR -> "A deferred operation is not complete but there is no work remaining to assign to additional threads"
   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_NOT_PERMITTED_KHR -> "The driver implementation has denied a request to acquire a priority above the default priority (VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT) because the application does not have sufficient privileges"
   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"
diff --git a/src/Vulkan/Extensions.hs b/src/Vulkan/Extensions.hs
--- a/src/Vulkan/Extensions.hs
+++ b/src/Vulkan/Extensions.hs
@@ -3,6 +3,7 @@
 module Vulkan.Extensions  ( module Vulkan.Extensions.Dependencies
                           , module Vulkan.Extensions.Handles
                           , module Vulkan.Extensions.VK_AMDX_shader_enqueue
+                          , module Vulkan.Extensions.VK_AMD_anti_lag
                           , module Vulkan.Extensions.VK_AMD_buffer_marker
                           , module Vulkan.Extensions.VK_AMD_device_coherent_memory
                           , module Vulkan.Extensions.VK_AMD_display_native_hdr
@@ -50,6 +51,7 @@
                           , 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_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,6 +60,7 @@
                           , module Vulkan.Extensions.VK_EXT_descriptor_indexing
                           , module Vulkan.Extensions.VK_EXT_device_address_binding_report
                           , module Vulkan.Extensions.VK_EXT_device_fault
+                          , module Vulkan.Extensions.VK_EXT_device_generated_commands
                           , module Vulkan.Extensions.VK_EXT_device_memory_report
                           , module Vulkan.Extensions.VK_EXT_direct_mode_display
                           , module Vulkan.Extensions.VK_EXT_directfb_surface
@@ -95,8 +98,10 @@
                           , module Vulkan.Extensions.VK_EXT_inline_uniform_block
                           , module Vulkan.Extensions.VK_EXT_layer_settings
                           , module Vulkan.Extensions.VK_EXT_legacy_dithering
+                          , module Vulkan.Extensions.VK_EXT_legacy_vertex_attributes
                           , module Vulkan.Extensions.VK_EXT_line_rasterization
                           , module Vulkan.Extensions.VK_EXT_load_store_op_none
+                          , module Vulkan.Extensions.VK_EXT_map_memory_placed
                           , module Vulkan.Extensions.VK_EXT_memory_budget
                           , module Vulkan.Extensions.VK_EXT_memory_priority
                           , module Vulkan.Extensions.VK_EXT_mesh_shader
@@ -118,6 +123,7 @@
                           , module Vulkan.Extensions.VK_EXT_pipeline_protected_access
                           , module Vulkan.Extensions.VK_EXT_pipeline_robustness
                           , module Vulkan.Extensions.VK_EXT_post_depth_coverage
+                          , module Vulkan.Extensions.VK_EXT_present_mode_fifo_latest_ready
                           , module Vulkan.Extensions.VK_EXT_primitive_topology_list_restart
                           , module Vulkan.Extensions.VK_EXT_primitives_generated_query
                           , module Vulkan.Extensions.VK_EXT_private_data
@@ -136,6 +142,7 @@
                           , module Vulkan.Extensions.VK_EXT_shader_image_atomic_int64
                           , module Vulkan.Extensions.VK_EXT_shader_module_identifier
                           , module Vulkan.Extensions.VK_EXT_shader_object
+                          , module Vulkan.Extensions.VK_EXT_shader_replicated_composites
                           , module Vulkan.Extensions.VK_EXT_shader_stencil_export
                           , module Vulkan.Extensions.VK_EXT_shader_subgroup_ballot
                           , module Vulkan.Extensions.VK_EXT_shader_subgroup_vote
@@ -154,6 +161,7 @@
                           , module Vulkan.Extensions.VK_EXT_validation_features
                           , module Vulkan.Extensions.VK_EXT_validation_flags
                           , module Vulkan.Extensions.VK_EXT_vertex_attribute_divisor
+                          , module Vulkan.Extensions.VK_EXT_vertex_attribute_robustness
                           , module Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state
                           , module Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats
                           , module Vulkan.Extensions.VK_EXT_ycbcr_image_arrays
@@ -169,6 +177,7 @@
                           , module Vulkan.Extensions.VK_GOOGLE_surfaceless_query
                           , module Vulkan.Extensions.VK_GOOGLE_user_type
                           , module Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader
+                          , module Vulkan.Extensions.VK_HUAWEI_hdr_vivid
                           , module Vulkan.Extensions.VK_HUAWEI_invocation_mask
                           , module Vulkan.Extensions.VK_HUAWEI_subpass_shading
                           , module Vulkan.Extensions.VK_IMG_filter_cubic
@@ -183,6 +192,7 @@
                           , module Vulkan.Extensions.VK_KHR_bind_memory2
                           , module Vulkan.Extensions.VK_KHR_buffer_device_address
                           , module Vulkan.Extensions.VK_KHR_calibrated_timestamps
+                          , module Vulkan.Extensions.VK_KHR_compute_shader_derivatives
                           , module Vulkan.Extensions.VK_KHR_cooperative_matrix
                           , module Vulkan.Extensions.VK_KHR_copy_commands2
                           , module Vulkan.Extensions.VK_KHR_create_renderpass2
@@ -230,9 +240,11 @@
                           , module Vulkan.Extensions.VK_KHR_maintenance4
                           , module Vulkan.Extensions.VK_KHR_maintenance5
                           , module Vulkan.Extensions.VK_KHR_maintenance6
+                          , module Vulkan.Extensions.VK_KHR_maintenance7
                           , module Vulkan.Extensions.VK_KHR_map_memory2
                           , module Vulkan.Extensions.VK_KHR_multiview
                           , module Vulkan.Extensions.VK_KHR_performance_query
+                          , module Vulkan.Extensions.VK_KHR_pipeline_binary
                           , module Vulkan.Extensions.VK_KHR_pipeline_executable_properties
                           , module Vulkan.Extensions.VK_KHR_pipeline_library
                           , module Vulkan.Extensions.VK_KHR_portability_enumeration
@@ -259,6 +271,7 @@
                           , module Vulkan.Extensions.VK_KHR_shader_maximal_reconvergence
                           , module Vulkan.Extensions.VK_KHR_shader_non_semantic_info
                           , module Vulkan.Extensions.VK_KHR_shader_quad_control
+                          , module Vulkan.Extensions.VK_KHR_shader_relaxed_extended_instruction
                           , module Vulkan.Extensions.VK_KHR_shader_subgroup_extended_types
                           , module Vulkan.Extensions.VK_KHR_shader_subgroup_rotate
                           , module Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow
@@ -284,6 +297,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_MESA_image_alignment_control
                           , module Vulkan.Extensions.VK_MSFT_layered_driver
                           , module Vulkan.Extensions.VK_MVK_ios_surface
                           , module Vulkan.Extensions.VK_MVK_macos_surface
@@ -293,8 +307,10 @@
                           , module Vulkan.Extensions.VK_NVX_multiview_per_view_attributes
                           , module Vulkan.Extensions.VK_NV_acquire_winrt_display
                           , module Vulkan.Extensions.VK_NV_clip_space_w_scaling
+                          , module Vulkan.Extensions.VK_NV_command_buffer_inheritance
                           , module Vulkan.Extensions.VK_NV_compute_shader_derivatives
                           , module Vulkan.Extensions.VK_NV_cooperative_matrix
+                          , module Vulkan.Extensions.VK_NV_cooperative_matrix2
                           , module Vulkan.Extensions.VK_NV_copy_memory_indirect
                           , module Vulkan.Extensions.VK_NV_corner_sampled_image
                           , module Vulkan.Extensions.VK_NV_coverage_reduction_mode
@@ -307,6 +323,7 @@
                           , 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_display_stereo
                           , module Vulkan.Extensions.VK_NV_extended_sparse_address_space
                           , module Vulkan.Extensions.VK_NV_external_memory
                           , module Vulkan.Extensions.VK_NV_external_memory_capabilities
@@ -328,12 +345,15 @@
                           , module Vulkan.Extensions.VK_NV_optical_flow
                           , module Vulkan.Extensions.VK_NV_per_stage_descriptor_set
                           , module Vulkan.Extensions.VK_NV_present_barrier
+                          , module Vulkan.Extensions.VK_NV_raw_access_chains
                           , module Vulkan.Extensions.VK_NV_ray_tracing
                           , module Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder
                           , module Vulkan.Extensions.VK_NV_ray_tracing_motion_blur
+                          , module Vulkan.Extensions.VK_NV_ray_tracing_validation
                           , module Vulkan.Extensions.VK_NV_representative_fragment_test
                           , module Vulkan.Extensions.VK_NV_sample_mask_override_coverage
                           , module Vulkan.Extensions.VK_NV_scissor_exclusive
+                          , module Vulkan.Extensions.VK_NV_shader_atomic_float16_vector
                           , module Vulkan.Extensions.VK_NV_shader_image_footprint
                           , module Vulkan.Extensions.VK_NV_shader_sm_builtins
                           , module Vulkan.Extensions.VK_NV_shader_subgroup_partitioned
@@ -363,6 +383,7 @@
 import Vulkan.Extensions.Dependencies
 import Vulkan.Extensions.Handles
 import Vulkan.Extensions.VK_AMDX_shader_enqueue
+import Vulkan.Extensions.VK_AMD_anti_lag
 import Vulkan.Extensions.VK_AMD_buffer_marker
 import Vulkan.Extensions.VK_AMD_device_coherent_memory
 import Vulkan.Extensions.VK_AMD_display_native_hdr
@@ -410,6 +431,7 @@
 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_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
@@ -418,6 +440,7 @@
 import Vulkan.Extensions.VK_EXT_descriptor_indexing
 import Vulkan.Extensions.VK_EXT_device_address_binding_report
 import Vulkan.Extensions.VK_EXT_device_fault
+import Vulkan.Extensions.VK_EXT_device_generated_commands
 import Vulkan.Extensions.VK_EXT_device_memory_report
 import Vulkan.Extensions.VK_EXT_direct_mode_display
 import Vulkan.Extensions.VK_EXT_directfb_surface
@@ -455,8 +478,10 @@
 import Vulkan.Extensions.VK_EXT_inline_uniform_block
 import Vulkan.Extensions.VK_EXT_layer_settings
 import Vulkan.Extensions.VK_EXT_legacy_dithering
+import Vulkan.Extensions.VK_EXT_legacy_vertex_attributes
 import Vulkan.Extensions.VK_EXT_line_rasterization
 import Vulkan.Extensions.VK_EXT_load_store_op_none
+import Vulkan.Extensions.VK_EXT_map_memory_placed
 import Vulkan.Extensions.VK_EXT_memory_budget
 import Vulkan.Extensions.VK_EXT_memory_priority
 import Vulkan.Extensions.VK_EXT_mesh_shader
@@ -478,6 +503,7 @@
 import Vulkan.Extensions.VK_EXT_pipeline_protected_access
 import Vulkan.Extensions.VK_EXT_pipeline_robustness
 import Vulkan.Extensions.VK_EXT_post_depth_coverage
+import Vulkan.Extensions.VK_EXT_present_mode_fifo_latest_ready
 import Vulkan.Extensions.VK_EXT_primitive_topology_list_restart
 import Vulkan.Extensions.VK_EXT_primitives_generated_query
 import Vulkan.Extensions.VK_EXT_private_data
@@ -496,6 +522,7 @@
 import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64
 import Vulkan.Extensions.VK_EXT_shader_module_identifier
 import Vulkan.Extensions.VK_EXT_shader_object
+import Vulkan.Extensions.VK_EXT_shader_replicated_composites
 import Vulkan.Extensions.VK_EXT_shader_stencil_export
 import Vulkan.Extensions.VK_EXT_shader_subgroup_ballot
 import Vulkan.Extensions.VK_EXT_shader_subgroup_vote
@@ -514,6 +541,7 @@
 import Vulkan.Extensions.VK_EXT_validation_features
 import Vulkan.Extensions.VK_EXT_validation_flags
 import Vulkan.Extensions.VK_EXT_vertex_attribute_divisor
+import Vulkan.Extensions.VK_EXT_vertex_attribute_robustness
 import Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state
 import Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats
 import Vulkan.Extensions.VK_EXT_ycbcr_image_arrays
@@ -529,6 +557,7 @@
 import Vulkan.Extensions.VK_GOOGLE_surfaceless_query
 import Vulkan.Extensions.VK_GOOGLE_user_type
 import Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader
+import Vulkan.Extensions.VK_HUAWEI_hdr_vivid
 import Vulkan.Extensions.VK_HUAWEI_invocation_mask
 import Vulkan.Extensions.VK_HUAWEI_subpass_shading
 import Vulkan.Extensions.VK_IMG_filter_cubic
@@ -543,6 +572,7 @@
 import Vulkan.Extensions.VK_KHR_bind_memory2
 import Vulkan.Extensions.VK_KHR_buffer_device_address
 import Vulkan.Extensions.VK_KHR_calibrated_timestamps
+import Vulkan.Extensions.VK_KHR_compute_shader_derivatives
 import Vulkan.Extensions.VK_KHR_cooperative_matrix
 import Vulkan.Extensions.VK_KHR_copy_commands2
 import Vulkan.Extensions.VK_KHR_create_renderpass2
@@ -590,9 +620,11 @@
 import Vulkan.Extensions.VK_KHR_maintenance4
 import Vulkan.Extensions.VK_KHR_maintenance5
 import Vulkan.Extensions.VK_KHR_maintenance6
+import Vulkan.Extensions.VK_KHR_maintenance7
 import Vulkan.Extensions.VK_KHR_map_memory2
 import Vulkan.Extensions.VK_KHR_multiview
 import Vulkan.Extensions.VK_KHR_performance_query
+import Vulkan.Extensions.VK_KHR_pipeline_binary
 import Vulkan.Extensions.VK_KHR_pipeline_executable_properties
 import Vulkan.Extensions.VK_KHR_pipeline_library
 import Vulkan.Extensions.VK_KHR_portability_enumeration
@@ -619,6 +651,7 @@
 import Vulkan.Extensions.VK_KHR_shader_maximal_reconvergence
 import Vulkan.Extensions.VK_KHR_shader_non_semantic_info
 import Vulkan.Extensions.VK_KHR_shader_quad_control
+import Vulkan.Extensions.VK_KHR_shader_relaxed_extended_instruction
 import Vulkan.Extensions.VK_KHR_shader_subgroup_extended_types
 import Vulkan.Extensions.VK_KHR_shader_subgroup_rotate
 import Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow
@@ -644,6 +677,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_MESA_image_alignment_control
 import Vulkan.Extensions.VK_MSFT_layered_driver
 import Vulkan.Extensions.VK_MVK_ios_surface
 import Vulkan.Extensions.VK_MVK_macos_surface
@@ -653,8 +687,10 @@
 import Vulkan.Extensions.VK_NVX_multiview_per_view_attributes
 import Vulkan.Extensions.VK_NV_acquire_winrt_display
 import Vulkan.Extensions.VK_NV_clip_space_w_scaling
+import Vulkan.Extensions.VK_NV_command_buffer_inheritance
 import Vulkan.Extensions.VK_NV_compute_shader_derivatives
 import Vulkan.Extensions.VK_NV_cooperative_matrix
+import Vulkan.Extensions.VK_NV_cooperative_matrix2
 import Vulkan.Extensions.VK_NV_copy_memory_indirect
 import Vulkan.Extensions.VK_NV_corner_sampled_image
 import Vulkan.Extensions.VK_NV_coverage_reduction_mode
@@ -667,6 +703,7 @@
 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_display_stereo
 import Vulkan.Extensions.VK_NV_extended_sparse_address_space
 import Vulkan.Extensions.VK_NV_external_memory
 import Vulkan.Extensions.VK_NV_external_memory_capabilities
@@ -688,12 +725,15 @@
 import Vulkan.Extensions.VK_NV_optical_flow
 import Vulkan.Extensions.VK_NV_per_stage_descriptor_set
 import Vulkan.Extensions.VK_NV_present_barrier
+import Vulkan.Extensions.VK_NV_raw_access_chains
 import Vulkan.Extensions.VK_NV_ray_tracing
 import Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder
 import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur
+import Vulkan.Extensions.VK_NV_ray_tracing_validation
 import Vulkan.Extensions.VK_NV_representative_fragment_test
 import Vulkan.Extensions.VK_NV_sample_mask_override_coverage
 import Vulkan.Extensions.VK_NV_scissor_exclusive
+import Vulkan.Extensions.VK_NV_shader_atomic_float16_vector
 import Vulkan.Extensions.VK_NV_shader_image_footprint
 import Vulkan.Extensions.VK_NV_shader_sm_builtins
 import Vulkan.Extensions.VK_NV_shader_subgroup_partitioned
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
@@ -1,6 +1,9 @@
 {-# language CPP #-}
 -- No documentation found for Chapter "Handles"
-module Vulkan.Extensions.Handles  ( IndirectCommandsLayoutNV(..)
+module Vulkan.Extensions.Handles  ( PipelineBinaryKHR(..)
+                                  , IndirectCommandsLayoutNV(..)
+                                  , IndirectCommandsLayoutEXT(..)
+                                  , IndirectExecutionSetEXT(..)
                                   , ValidationCacheEXT(..)
                                   , AccelerationStructureKHR(..)
                                   , AccelerationStructureNV(..)
@@ -68,10 +71,13 @@
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DEFERRED_OPERATION_KHR))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DISPLAY_KHR))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DISPLAY_MODE_KHR))
+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV))
+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_MICROMAP_EXT))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL))
+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PIPELINE_BINARY_KHR))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_SHADER_EXT))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_SURFACE_KHR))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_SWAPCHAIN_KHR))
@@ -103,11 +109,32 @@
 import Vulkan.Core11.Handles (SamplerYcbcrConversion(..))
 import Vulkan.Core10.Handles (Semaphore(..))
 import Vulkan.Core10.Handles (ShaderModule(..))
+-- | VkPipelineBinaryKHR - Opaque handle to a pipeline binary object
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryDataInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryHandlesInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_binary.destroyPipelineBinaryKHR'
+newtype PipelineBinaryKHR = PipelineBinaryKHR Word64
+  deriving newtype (Eq, Ord, Storable, Zero)
+  deriving anyclass (IsHandle)
+instance HasObjectType PipelineBinaryKHR where
+  objectTypeAndHandle (PipelineBinaryKHR h) = ( OBJECT_TYPE_PIPELINE_BINARY_KHR
+                                              , h )
+instance Show PipelineBinaryKHR where
+  showsPrec p (PipelineBinaryKHR x) = showParen (p >= 11) (showString "PipelineBinaryKHR 0x" . showHex x)
+
+
 -- | VkIndirectCommandsLayoutNV - Opaque handle to an indirect commands
 -- layout object
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <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.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsMemoryRequirementsInfoNV',
@@ -123,10 +150,61 @@
   showsPrec p (IndirectCommandsLayoutNV x) = showParen (p >= 11) (showString "IndirectCommandsLayoutNV 0x" . showHex x)
 
 
+-- | VkIndirectCommandsLayoutEXT - Opaque handle to an indirect commands
+-- layout object
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsMemoryRequirementsInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.createIndirectCommandsLayoutEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.destroyIndirectCommandsLayoutEXT'
+newtype IndirectCommandsLayoutEXT = IndirectCommandsLayoutEXT Word64
+  deriving newtype (Eq, Ord, Storable, Zero)
+  deriving anyclass (IsHandle)
+instance HasObjectType IndirectCommandsLayoutEXT where
+  objectTypeAndHandle (IndirectCommandsLayoutEXT h) = ( OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT
+                                                      , h )
+instance Show IndirectCommandsLayoutEXT where
+  showsPrec p (IndirectCommandsLayoutEXT x) = showParen (p >= 11) (showString "IndirectCommandsLayoutEXT 0x" . showHex x)
+
+
+-- | VkIndirectExecutionSetEXT - Opaque handle to an indirect execution set
+-- object
+--
+-- = Description
+--
+-- Indirect Execution Sets allow the device to bind different shaders and
+-- pipeline states using
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands>.
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsMemoryRequirementsInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.createIndirectExecutionSetEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.destroyIndirectExecutionSetEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.updateIndirectExecutionSetPipelineEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.updateIndirectExecutionSetShaderEXT'
+newtype IndirectExecutionSetEXT = IndirectExecutionSetEXT Word64
+  deriving newtype (Eq, Ord, Storable, Zero)
+  deriving anyclass (IsHandle)
+instance HasObjectType IndirectExecutionSetEXT where
+  objectTypeAndHandle (IndirectExecutionSetEXT h) = ( OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT
+                                                    , h )
+instance Show IndirectExecutionSetEXT where
+  showsPrec p (IndirectExecutionSetEXT x) = showParen (p >= 11) (showString "IndirectExecutionSetEXT 0x" . showHex x)
+
+
 -- | VkValidationCacheEXT - Opaque handle to a validation cache object
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cache VK_EXT_validation_cache>,
 -- 'Vulkan.Extensions.VK_EXT_validation_cache.ShaderModuleValidationCacheCreateInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_validation_cache.createValidationCacheEXT',
@@ -148,6 +226,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>,
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureBuildGeometryInfoKHR',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.AccelerationStructureCaptureDescriptorDataInfoEXT',
@@ -175,6 +254,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>,
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.AccelerationStructureCaptureDescriptorDataInfoEXT',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureMemoryRequirementsInfoNV',
@@ -201,6 +281,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_query VK_INTEL_performance_query>,
 -- 'Vulkan.Extensions.VK_INTEL_performance_query.acquirePerformanceConfigurationINTEL',
 -- 'Vulkan.Extensions.VK_INTEL_performance_query.queueSetPerformanceConfigurationINTEL',
@@ -219,6 +300,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collection VK_FUCHSIA_buffer_collection>,
 -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA',
 -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA',
@@ -247,6 +329,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_deferred_host_operations VK_KHR_deferred_host_operations>,
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.buildAccelerationStructuresKHR',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.buildMicromapsEXT',
@@ -276,6 +359,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_import VK_NVX_binary_import>,
 -- 'Vulkan.Extensions.VK_NVX_binary_import.CuFunctionCreateInfoNVX',
 -- 'Vulkan.Extensions.VK_NVX_binary_import.createCuModuleNVX',
@@ -293,6 +377,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_import VK_NVX_binary_import>,
 -- 'Vulkan.Extensions.VK_NVX_binary_import.CuLaunchInfoNVX',
 -- 'Vulkan.Extensions.VK_NVX_binary_import.createCuFunctionNVX',
@@ -310,6 +395,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,
 -- 'Vulkan.Extensions.VK_NV_optical_flow.bindOpticalFlowSessionImageNV',
 -- 'Vulkan.Extensions.VK_NV_optical_flow.cmdOpticalFlowExecuteNV',
@@ -329,6 +415,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,
 -- 'Vulkan.Extensions.VK_NV_displacement_micromap.AccelerationStructureTrianglesDisplacementMicromapNV',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.AccelerationStructureTrianglesOpacityMicromapEXT',
@@ -353,7 +440,11 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsShaderInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectExecutionSetShaderInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.WriteIndirectExecutionSetShaderEXT',
 -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT',
 -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT',
 -- 'Vulkan.Extensions.VK_EXT_shader_object.destroyShaderEXT',
@@ -371,6 +462,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display VK_KHR_display>,
 -- 'Vulkan.Extensions.VK_KHR_display.DisplayPlanePropertiesKHR',
 -- 'Vulkan.Extensions.VK_KHR_display.DisplayPropertiesKHR',
@@ -400,6 +492,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display VK_KHR_display>,
 -- 'Vulkan.Extensions.VK_KHR_display.DisplayModePropertiesKHR',
 -- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayPlaneInfo2KHR',
@@ -428,6 +521,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>,
 -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',
@@ -480,8 +574,6 @@
 -- windows that have a non-Vulkan graphics API surface associated with
 -- them.
 --
--- Note
---
 -- The presentation engine is an abstraction for the platform’s compositor
 -- or display engine.
 --
@@ -516,8 +608,6 @@
 -- The presentation engine controls the order in which presentable images
 -- are acquired for use by the application.
 --
--- Note
---
 -- This allows the platform to handle situations which require out-of-order
 -- return of images after presentation. At the same time, it allows the
 -- application to generate command buffers referencing all of the images in
@@ -525,6 +615,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>,
 -- 'Vulkan.Extensions.VK_KHR_swapchain.AcquireNextImageInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.BindImageMemorySwapchainInfoKHR',
@@ -565,6 +656,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>,
 -- 'Vulkan.Extensions.VK_EXT_debug_report.createDebugReportCallbackEXT',
 -- 'Vulkan.Extensions.VK_EXT_debug_report.destroyDebugReportCallbackEXT'
@@ -592,6 +684,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils>,
 -- 'Vulkan.Extensions.VK_EXT_debug_utils.createDebugUtilsMessengerEXT',
 -- 'Vulkan.Extensions.VK_EXT_debug_utils.destroyDebugUtilsMessengerEXT'
@@ -609,6 +702,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launch VK_NV_cuda_kernel_launch>,
 -- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.CudaFunctionCreateInfoNV',
 -- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.createCudaModuleNV',
@@ -627,6 +721,7 @@
 --
 -- = See Also
 --
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_DEFINE_NON_DISPATCHABLE_HANDLE VK_DEFINE_NON_DISPATCHABLE_HANDLE>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launch VK_NV_cuda_kernel_launch>,
 -- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.CudaLaunchInfoNV',
 -- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.createCudaFunctionNV',
diff --git a/src/Vulkan/Extensions/Handles.hs-boot b/src/Vulkan/Extensions/Handles.hs-boot
--- a/src/Vulkan/Extensions/Handles.hs-boot
+++ b/src/Vulkan/Extensions/Handles.hs-boot
@@ -12,10 +12,13 @@
                                   , DeferredOperationKHR
                                   , DisplayKHR
                                   , DisplayModeKHR
+                                  , IndirectCommandsLayoutEXT
                                   , IndirectCommandsLayoutNV
+                                  , IndirectExecutionSetEXT
                                   , MicromapEXT
                                   , OpticalFlowSessionNV
                                   , PerformanceConfigurationINTEL
+                                  , PipelineBinaryKHR
                                   , ShaderEXT
                                   , SurfaceKHR
                                   , SwapchainKHR
@@ -60,9 +63,15 @@
 data DisplayModeKHR
 
 
+data IndirectCommandsLayoutEXT
+
+
 data IndirectCommandsLayoutNV
 
 
+data IndirectExecutionSetEXT
+
+
 data MicromapEXT
 
 
@@ -70,6 +79,9 @@
 
 
 data PerformanceConfigurationINTEL
+
+
+data PipelineBinaryKHR
 
 
 data ShaderEXT
diff --git a/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs b/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs
--- a/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs
+++ b/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs
@@ -3,4102 +3,4199 @@
 --
 -- 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.__
---
--- [__API Interactions__]
---
---     -   Interacts with VK_KHR_maintenance5
---
--- [__SPIR-V Dependencies__]
---
---     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMDX/SPV_AMDX_shader_enqueue.html SPV_AMDX_shader_enqueue>
---
--- [__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
---
--- [__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
---
--- Pipelines are created and returned as described for
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-multiple Multiple Pipeline Creation>.
---
--- == 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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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-None-09497# If the
---     @pNext@ chain does not include a
---     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
---     structure, @flags@ must be a valid combination of
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
---     values
---
--- -   #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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>
---     is not enabled, @flags@ /must/ not include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
---
--- -   #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-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
+-- = VK_AMDX_shader_enqueue
+--
+-- [__Name String__]
+--     @VK_AMDX_shader_enqueue@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     135
+--
+-- [__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_synchronization2 VK_KHR_synchronization2>
+--              and
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_spirv_1_4 VK_KHR_spirv_1_4>
+--              and
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library VK_KHR_pipeline_library>
+--
+--     -   __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.__
+--
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_EXT_mesh_shader
+--
+--     -   Interacts with VK_KHR_maintenance5
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMDX/SPV_AMDX_shader_enqueue.html SPV_AMDX_shader_enqueue>
+--
+-- [__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__]
+--     2024-07-17
+--
+-- [__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 mesh and
+-- 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
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_maintenance5.BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX'
+--
+-- == Version History
+--
+-- -   Revision 2, 2024-07-17 (Tobias Hector)
+--
+--     -   Add mesh nodes
+--
+-- -   Revision 1, 2021-07-22 (Tobias Hector)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == 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(..)
+                                                 , AMDX_SHADER_ENQUEUE_SPEC_VERSION
+                                                 , pattern AMDX_SHADER_ENQUEUE_SPEC_VERSION
+                                                 , AMDX_SHADER_ENQUEUE_EXTENSION_NAME
+                                                 , pattern AMDX_SHADER_ENQUEUE_EXTENSION_NAME
+                                                 , PipelineLibraryCreateInfoKHR(..)
+                                                 , BufferUsageFlagBits2KHR(..)
+                                                 , BufferUsageFlags2KHR
+                                                 , PipelineCreateFlagBits2KHR(..)
+                                                 , PipelineCreateFlags2KHR
+                                                 , SHADER_INDEX_UNUSED_AMDX
+                                                 , pattern SHADER_INDEX_UNUSED_AMDX
+                                                 ) where
+
+import Vulkan.CStruct.Utils (FixedArray)
+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 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 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 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.Utils (lowerArrayPtr)
+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.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_maintenance5 (BufferUsageFlagBits2KHR(..))
+import Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2KHR)
+import Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlagBits2KHR(..))
+import Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlags2KHR)
+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 logical device 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 logical device 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
+--
+-- Pipelines are created and returned as described for
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-multiple Multiple Pipeline Creation>.
+--
+-- == 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>
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-pNext-09616# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@, @pipelineCache@ /must/
+--     be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-pNext-09617# If a
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
+--     structure with the
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+--     flag set is included in the @pNext@ chain of any element of
+--     @pCreateInfos@, @pipelineCache@ /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-binaryCount-09620# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT'
+--     /must/ not be set in the @flags@ of that element
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-binaryCount-09621# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT'
+--     /must/ not be set in the @flags@ of that element
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-binaryCount-09622# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'
+--     /must/ not be set in the @flags@ of that element
+--
+-- == 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 -> Pipeline -> DeviceAddress -> DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Pipeline -> DeviceAddress -> DeviceSize -> IO ()
+
+-- | vkCmdInitializeGraphScratchMemoryAMDX - Initialize scratch memory for an
+-- execution graph
+--
+-- = Description
+--
+-- This command /must/ be called before using @scratch@ to dispatch the
+-- bound execution graph pipeline.
+--
+-- Execution of this command /may/ modify any memory locations in the range
+-- [@scratch@,@scratch@ + @scratchSize@). 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-10185# @scratch@
+--     /must/ be the device address of an allocated memory range at least
+--     as large as @scratchSize@
+--
+-- -   #VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratchSize-10186#
+--     @scratchSize@ /must/ be greater than or equal to
+--     'ExecutionGraphPipelineScratchSizeAMDX'::@minSize@ returned by
+--     'getExecutionGraphPipelineScratchSizeAMDX' for the 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-executionGraph-parameter#
+--     @executionGraph@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline'
+--     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-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'
+--
+-- -   #VUID-vkCmdInitializeGraphScratchMemoryAMDX-commonparent# Both of
+--     @commandBuffer@, and @executionGraph@ /must/ have been created,
+--     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'
+--
+-- == 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                                                                                                                    | Both                                                                                                                   | 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',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Core10.Handles.Pipeline'
+cmdInitializeGraphScratchMemoryAMDX :: forall io
+                                     . (MonadIO io)
+                                    => -- | @commandBuffer@ is the command buffer into which the command will be
+                                       -- recorded.
+                                       CommandBuffer
+                                    -> -- | @executionGraph@ is the execution graph pipeline to initialize the
+                                       -- scratch memory for.
+                                       ("executionGraph" ::: Pipeline)
+                                    -> -- | @scratch@ is the address of scratch memory to be initialized.
+                                       ("scratch" ::: DeviceAddress)
+                                    -> -- | @scratchSize@ is a range in bytes of scratch memory to be initialized.
+                                       ("scratchSize" ::: DeviceSize)
+                                    -> io ()
+cmdInitializeGraphScratchMemoryAMDX commandBuffer
+                                      executionGraph
+                                      scratch
+                                      scratchSize = 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))
+                                                              (executionGraph)
+                                                              (scratch)
+                                                              (scratchSize))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDispatchGraphAMDX
+  :: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> DeviceSize -> Ptr DispatchGraphCountInfoAMDX -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> DeviceSize -> 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.
+-- There are no rasterization order guarantees between separately
+-- dispatched graphics nodes, though individual primitives within a single
+-- dispatch do adhere to rasterization order. Draw calls executed before or
+-- after the execution graph also execute relative to each graphics node
+-- with respect to rasterization order.
+--
+-- 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@ + @scratchSize@). 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.
+--
+-- This command
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#executiongraphs-meshnodes-statecapture captures command buffer state>
+-- for mesh nodes similarly to draw commands.
+--
+-- == 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of resources
+--     that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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
+--     specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with type
+--     equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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-10192# @scratch@ /must/ be the
+--     device address of an allocated memory range at least as large as
+--     @scratchSize@
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-scratchSize-10193# @scratchSize@ /must/
+--     be greater than or equal to
+--     'ExecutionGraphPipelineScratchSizeAMDX'::@minSize@ returned by
+--     'getExecutionGraphPipelineScratchSizeAMDX' for the 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
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX'
+--     flag
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-scratch-10194# The device memory range
+--     [@scratch@,@scratch@
+--     @scratchSize@] /must/ have been initialized with
+--     'cmdInitializeGraphScratchMemoryAMDX' using the 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-None-10195# If the bound execution
+--     graph pipeline includes draw nodes, this command /must/ be called
+--     within a render pass instance that is compatible with the graphics
+--     pipeline used to create each of those nodes
+--
+-- -   #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 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-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                                                                                                                    | Both                                                                                                                   | 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',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'DispatchGraphCountInfoAMDX'
+cmdDispatchGraphAMDX :: forall io
+                      . (MonadIO io)
+                     => -- | @commandBuffer@ is the command buffer into which the command will be
+                        -- recorded.
+                        CommandBuffer
+                     -> -- | @scratch@ is the address of scratch memory to be used.
+                        ("scratch" ::: DeviceAddress)
+                     -> -- | @scratchSize@ is a range in bytes of scratch memory to be used.
+                        ("scratchSize" ::: DeviceSize)
+                     -> -- | @pCountInfo@ is a host pointer to a 'DispatchGraphCountInfoAMDX'
+                        -- structure defining the nodes which will be initially executed.
+                        DispatchGraphCountInfoAMDX
+                     -> io ()
+cmdDispatchGraphAMDX commandBuffer
+                       scratch
+                       scratchSize
+                       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)
+                                                      (scratchSize)
+                                                      pCountInfo)
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDispatchGraphIndirectAMDX
+  :: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> DeviceSize -> Ptr DispatchGraphCountInfoAMDX -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> DeviceSize -> 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.
+-- There are no rasterization order guarantees between separately
+-- dispatched graphics nodes, though individual primitives within a single
+-- dispatch do adhere to rasterization order. Draw calls executed before or
+-- after the execution graph also execute relative to each graphics node
+-- with respect to rasterization order.
+--
+-- 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@ + @scratchSize@). 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.
+--
+-- This command
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#executiongraphs-meshnodes-statecapture captures command buffer state>
+-- for mesh nodes similarly to draw commands.
+--
+-- == 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-unnormalizedCoordinates-09635#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-unnormalizedCoordinates-09636#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of
+--     resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor
+--     with type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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-10192# @scratch@ /must/
+--     be the device address of an allocated memory range at least as large
+--     as @scratchSize@
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-scratchSize-10193#
+--     @scratchSize@ /must/ be greater than or equal to
+--     'ExecutionGraphPipelineScratchSizeAMDX'::@minSize@ returned by
+--     'getExecutionGraphPipelineScratchSizeAMDX' for the 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
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX'
+--     flag
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-scratch-10194# The device
+--     memory range [@scratch@,@scratch@
+--     @scratchSize@] /must/ have been initialized with
+--     'cmdInitializeGraphScratchMemoryAMDX' using the 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-None-10195# If the bound
+--     execution graph pipeline includes draw nodes, this command /must/ be
+--     called within a render pass instance that is compatible with the
+--     graphics pipeline used to create each of those nodes
+--
+-- -   #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 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-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                                                                                                                    | Both                                                                                                                   | 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',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'DispatchGraphCountInfoAMDX'
+cmdDispatchGraphIndirectAMDX :: forall io
+                              . (MonadIO io)
+                             => -- | @commandBuffer@ is the command buffer into which the command will be
+                                -- recorded.
+                                CommandBuffer
+                             -> -- | @scratch@ is the address of scratch memory to be used.
+                                ("scratch" ::: DeviceAddress)
+                             -> -- | @scratchSize@ is a range in bytes of scratch memory to be used.
+                                ("scratchSize" ::: DeviceSize)
+                             -> -- | @pCountInfo@ is a host pointer to a 'DispatchGraphCountInfoAMDX'
+                                -- structure defining the nodes which will be initially executed.
+                                DispatchGraphCountInfoAMDX
+                             -> io ()
+cmdDispatchGraphIndirectAMDX commandBuffer
+                               scratch
+                               scratchSize
+                               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)
+                                                              (scratchSize)
+                                                              pCountInfo)
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDispatchGraphIndirectCountAMDX
+  :: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> DeviceSize -> DeviceAddress -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> DeviceSize -> 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@ + @scratchSize@). 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-unnormalizedCoordinates-09635#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-unnormalizedCoordinates-09636#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array
+--     of resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a
+--     descriptor with type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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-10192# @scratch@
+--     /must/ be the device address of an allocated memory range at least
+--     as large as @scratchSize@
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-scratchSize-10193#
+--     @scratchSize@ /must/ be greater than or equal to
+--     'ExecutionGraphPipelineScratchSizeAMDX'::@minSize@ returned by
+--     'getExecutionGraphPipelineScratchSizeAMDX' for the 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
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX'
+--     flag
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-10194# The device
+--     memory range [@scratch@,@scratch@
+--     @scratchSize@] /must/ have been initialized with
+--     'cmdInitializeGraphScratchMemoryAMDX' using the 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-None-10195# If the bound
+--     execution graph pipeline includes draw nodes, this command /must/ be
+--     called within a render pass instance that is compatible with the
+--     graphics pipeline used to create each of those nodes
+--
+-- -   #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 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-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                                                                                                                    | Both                                                                                                                   | 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',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdDispatchGraphIndirectCountAMDX :: forall io
+                                   . (MonadIO io)
+                                  => -- | @commandBuffer@ is the command buffer into which the command will be
+                                     -- recorded.
+                                     CommandBuffer
+                                  -> -- | @scratch@ is the address of scratch memory to be used.
+                                     ("scratch" ::: DeviceAddress)
+                                  -> -- | @scratchSize@ is a range in bytes of scratch memory to be used.
+                                     ("scratchSize" ::: DeviceSize)
+                                  -> -- | @countInfo@ is a device address of a 'DispatchGraphCountInfoAMDX'
+                                     -- structure defining the nodes which will be initially executed.
+                                     ("countInfo" ::: DeviceAddress)
+                                  -> io ()
+cmdDispatchGraphIndirectCountAMDX commandBuffer
+                                    scratch
+                                    scratchSize
+                                    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)
+                                                            (scratchSize)
+                                                            (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
+  , -- | #limits-maxExecutionGraphWorkgroupCount#
+    -- @maxExecutionGraphWorkgroupCount@[3] is the maximum number of local
+    -- workgroups that a shader /can/ be dispatched with in X, Y, and Z
+    -- dimensions, respectively.
+    maxExecutionGraphWorkgroupCount :: (Word32, Word32, Word32)
+  , -- | #limits-maxExecutionGraphWorkgroups# @maxExecutionGraphWorkgroups@ is
+    -- the total number of local workgroups that a shader /can/ be dispatched
+    -- with.
+    maxExecutionGraphWorkgroups :: 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 56 $ \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)
+    let pMaxExecutionGraphWorkgroupCount' = lowerArrayPtr ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))
+    case (maxExecutionGraphWorkgroupCount) of
+      (e0, e1, e2) -> do
+        poke (pMaxExecutionGraphWorkgroupCount' :: Ptr Word32) (e0)
+        poke (pMaxExecutionGraphWorkgroupCount' `plusPtr` 4 :: Ptr Word32) (e1)
+        poke (pMaxExecutionGraphWorkgroupCount' `plusPtr` 8 :: Ptr Word32) (e2)
+    poke ((p `plusPtr` 48 :: Ptr Word32)) (maxExecutionGraphWorkgroups)
+    f
+  cStructSize = 56
+  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)
+    let pMaxExecutionGraphWorkgroupCount' = lowerArrayPtr ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))
+    case ((zero, zero, zero)) of
+      (e0, e1, e2) -> do
+        poke (pMaxExecutionGraphWorkgroupCount' :: Ptr Word32) (e0)
+        poke (pMaxExecutionGraphWorkgroupCount' `plusPtr` 4 :: Ptr Word32) (e1)
+        poke (pMaxExecutionGraphWorkgroupCount' `plusPtr` 8 :: Ptr Word32) (e2)
+    poke ((p `plusPtr` 48 :: 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))
+    let pmaxExecutionGraphWorkgroupCount = lowerArrayPtr @Word32 ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))
+    maxExecutionGraphWorkgroupCount0 <- peek @Word32 ((pmaxExecutionGraphWorkgroupCount `advancePtrBytes` 0 :: Ptr Word32))
+    maxExecutionGraphWorkgroupCount1 <- peek @Word32 ((pmaxExecutionGraphWorkgroupCount `advancePtrBytes` 4 :: Ptr Word32))
+    maxExecutionGraphWorkgroupCount2 <- peek @Word32 ((pmaxExecutionGraphWorkgroupCount `advancePtrBytes` 8 :: Ptr Word32))
+    maxExecutionGraphWorkgroups <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
+    pure $ PhysicalDeviceShaderEnqueuePropertiesAMDX
+             maxExecutionGraphDepth
+             maxExecutionGraphShaderOutputNodes
+             maxExecutionGraphShaderPayloadSize
+             maxExecutionGraphShaderPayloadCount
+             executionGraphDispatchAddressAlignment
+             (( maxExecutionGraphWorkgroupCount0
+              , maxExecutionGraphWorkgroupCount1
+              , maxExecutionGraphWorkgroupCount2 ))
+             maxExecutionGraphWorkgroups
+
+instance Storable PhysicalDeviceShaderEnqueuePropertiesAMDX where
+  sizeOf ~_ = 56
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceShaderEnqueuePropertiesAMDX where
+  zero = PhysicalDeviceShaderEnqueuePropertiesAMDX
+           zero
+           zero
+           zero
+           zero
+           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
+  , -- | #features-shaderMeshEnqueue# @shaderMeshEnqueue@ indicates whether the
+    -- implementation supports
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#executiongraphs-meshnodes mesh nodes in execution graphs>.
+    shaderMeshEnqueue :: 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))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (shaderMeshEnqueue))
+    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))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX where
+  peekCStruct p = do
+    shaderEnqueue <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    shaderMeshEnqueue <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pure $ PhysicalDeviceShaderEnqueueFeaturesAMDX
+             (bool32ToBool shaderEnqueue) (bool32ToBool shaderMeshEnqueue)
+
+instance Storable PhysicalDeviceShaderEnqueueFeaturesAMDX where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceShaderEnqueueFeaturesAMDX where
+  zero = PhysicalDeviceShaderEnqueueFeaturesAMDX
+           zero
+           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.
+-- For any graphics pipeline libraries, only the name and index of the
+-- vertex or mesh shader stage is linked directly to the graph as a node -
+-- other shader stages in the pipeline will be executed after those shader
+-- stages as normal. Task shaders cannot be included in a graphics pipeline
+-- used for a draw node.
+--
+-- 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-None-09497# If the
+--     @pNext@ chain does not include a
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
+--     structure, @flags@ /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
+--     values
+--
+-- -   #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 the shader stage
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-10069# If a push
+--     constant block is declared in a shader, the block must be contained
+--     inside the push constant range in @layout@ that matches the stage
+--
+-- -   #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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>
+--     feature is not enabled, @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
+--
+-- -   #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-flags-11007# If @flags@
+--     includes
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- -   #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->pLibraries@ /must/ be either a compute pipeline, an
+--     execution graph pipeline, or a graphics pipeline
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-10181# If
+--     @pLibraryInfo@ is not @NULL@, each element of
+--     @pLibraryInfo->pLibraries@ that is a compute pipeline or a graphics
+--     pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX'
+--     set
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-shaderMeshEnqueue-10182#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderMeshEnqueue shaderMeshEnqueue>
+--     feature is not enabled, and @pLibraryInfo->pLibraries@ is not
+--     @NULL@, @pLibraryInfo->pLibraries@ /must/ not contain any graphics
+--     pipelines
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-10183# Any
+--     element of @pLibraryInfo->pLibraries@ identifying a graphics
+--     pipeline /must/ have been created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete all possible state subsets>
+--
+-- -   #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
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-10184# If @flags@
+--     does not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR',
+--     and an output payload declared in any shader in the pipeline does
+--     not have a @PayloadNodeSparseArrayAMDX@ decoration, there /must/ be
+--     a node in the graph corresponding to every index from 0 to its
+--     @PayloadNodeArraySizeAMDX@ decoration
+--
+-- == 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-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.
+--
+-- Shaders with the same name /must/ be of the same type - e.g. a compute
+-- and graphics shader, or even two compute shaders where one is coalescing
+-- and the other is not, cannot share the same name.
+--
+-- == 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
+--
+-- = Description
+--
+-- Applications /can/ use any amount of scratch memory greater than
+-- @minSize@ for dispatching a graph, however only the values equal to
+-- @minSize@ + an integer multiple of @sizeGranularity@ will be used.
+-- Greater values /may/ result in higher performance, up to @maxSize@ which
+-- indicates the most memory that an implementation can use effectively.
+--
+-- == 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
+  { -- | @minSize@ indicates the minimum scratch space required for dispatching
+    -- the queried execution graph.
+    minSize :: DeviceSize
+  , -- | @maxSize@ indicates the maximum scratch space that can be used for
+    -- dispatching the queried execution graph.
+    maxSize :: DeviceSize
+  , -- | @sizeGranularity@ indicates the granularity at which the scratch space
+    -- can be increased from @minSize@.
+    sizeGranularity :: 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 40 $ \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)) (minSize)
+    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (maxSize)
+    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (sizeGranularity)
+    f
+  cStructSize = 40
+  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)
+    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)
+    f
+
+instance FromCStruct ExecutionGraphPipelineScratchSizeAMDX where
+  peekCStruct p = do
+    minSize <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))
+    maxSize <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))
+    sizeGranularity <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))
+    pure $ ExecutionGraphPipelineScratchSizeAMDX
+             minSize maxSize sizeGranularity
+
+instance Storable ExecutionGraphPipelineScratchSizeAMDX where
+  sizeOf ~_ = 40
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ExecutionGraphPipelineScratchSizeAMDX where
+  zero = ExecutionGraphPipelineScratchSizeAMDX
+           zero
+           zero
+           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 AMDX_SHADER_ENQUEUE_SPEC_VERSION = 2
+
+-- 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 = 2
 
 
 type 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
--- a/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_AMDX_shader_enqueue - device extension
 --
--- == VK_AMDX_shader_enqueue
+-- = VK_AMDX_shader_enqueue
 --
 -- [__Name String__]
 --     @VK_AMDX_shader_enqueue@
@@ -15,19 +15,27 @@
 --     135
 --
 -- [__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>
---     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_spirv_1_4 VK_KHR_spirv_1_4>
+--              and
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library VK_KHR_pipeline_library>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
 --     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_spirv_1_4 VK_KHR_spirv_1_4>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library VK_KHR_pipeline_library>
 --
 --     -   __This is a /provisional/ extension and /must/ be used with
 --         caution. See the
@@ -37,6 +45,8 @@
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_EXT_mesh_shader
+--
 --     -   Interacts with VK_KHR_maintenance5
 --
 -- [__SPIR-V Dependencies__]
@@ -54,7 +64,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2021-07-22
+--     2024-07-17
 --
 -- [__Provisional__]
 --     __This extension is /provisional/ and /should/ not be used in
@@ -86,8 +96,8 @@
 --
 -- == Description
 --
--- This extension adds the ability for developers to enqueue compute shader
--- workgroups from other compute shaders.
+-- This extension adds the ability for developers to enqueue mesh and
+-- compute shader workgroups from other compute shaders.
 --
 -- == New Commands
 --
@@ -167,30 +177,29 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
 -- is supported:
 --
--- -   Extending 'BufferUsageFlagBits2KHR':
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlagBits2KHR':
 --
---     -   'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX'
+--     -   'Vulkan.Extensions.VK_KHR_maintenance5.BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX'
 --
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX'
+--
 -- == Version History
 --
+-- -   Revision 2, 2024-07-17 (Tobias Hector)
+--
+--     -   Add mesh nodes
+--
 -- -   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'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_anti_lag.hs b/src/Vulkan/Extensions/VK_AMD_anti_lag.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_AMD_anti_lag.hs
@@ -0,0 +1,580 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_AMD_anti_lag - device extension
+--
+-- = VK_AMD_anti_lag
+--
+-- [__Name String__]
+--     @VK_AMD_anti_lag@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     477
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__Contact__]
+--
+--     -   Stu Smith
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_AMD_anti_lag.adoc VK_AMD_anti_lag>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-06-06
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Stuart Smith, AMD
+--
+--     -   Arkadiusz Sarwa, AMD
+--
+-- == Description
+--
+-- This extension automatically paces the CPU to make sure it does not get
+-- too far ahead of the GPU, reducing the latency between inputs received
+-- and updates on the screen. Additionally, Anti-Lag+ offers applications
+-- the ability to inform the driver when input processing begins, in order
+-- to align the timing of display updates, enabling even lower latency
+-- between receiving input and displaying on the screen.
+--
+-- == New Commands
+--
+-- -   'antiLagUpdateAMD'
+--
+-- == New Structures
+--
+-- -   'AntiLagDataAMD'
+--
+-- -   'AntiLagPresentationInfoAMD'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceAntiLagFeaturesAMD'
+--
+-- == New Enums
+--
+-- -   'AntiLagModeAMD'
+--
+-- -   'AntiLagStageAMD'
+--
+-- == New Enum Constants
+--
+-- -   'AMD_ANTI_LAG_EXTENSION_NAME'
+--
+-- -   'AMD_ANTI_LAG_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ANTI_LAG_DATA_AMD'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-06-06 (Arkadiusz Sarw)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_anti_lag Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_AMD_anti_lag  ( antiLagUpdateAMD
+                                          , PhysicalDeviceAntiLagFeaturesAMD(..)
+                                          , AntiLagDataAMD(..)
+                                          , AntiLagPresentationInfoAMD(..)
+                                          , AntiLagModeAMD( ANTI_LAG_MODE_DRIVER_CONTROL_AMD
+                                                          , ANTI_LAG_MODE_ON_AMD
+                                                          , ANTI_LAG_MODE_OFF_AMD
+                                                          , ..
+                                                          )
+                                          , AntiLagStageAMD( ANTI_LAG_STAGE_INPUT_AMD
+                                                           , ANTI_LAG_STAGE_PRESENT_AMD
+                                                           , ..
+                                                           )
+                                          , AMD_ANTI_LAG_SPEC_VERSION
+                                          , pattern AMD_ANTI_LAG_SPEC_VERSION
+                                          , AMD_ANTI_LAG_EXTENSION_NAME
+                                          , pattern AMD_ANTI_LAG_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 Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Marshal.Utils (maybePeek)
+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.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Handles (Device)
+import Vulkan.Core10.Handles (Device(..))
+import Vulkan.Core10.Handles (Device(Device))
+import Vulkan.Dynamic (DeviceCmds(pVkAntiLagUpdateAMD))
+import Vulkan.Core10.Handles (Device_T)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ANTI_LAG_DATA_AMD))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkAntiLagUpdateAMD
+  :: FunPtr (Ptr Device_T -> Ptr AntiLagDataAMD -> IO ()) -> Ptr Device_T -> Ptr AntiLagDataAMD -> IO ()
+
+-- | vkAntiLagUpdateAMD - Provide information to reduce latency
+--
+-- = Description
+--
+-- This command should be executed immediately before the application
+-- processes user input. If @pData@ is not @NULL@ and
+-- 'AntiLagDataAMD'::@presentationInfo@ is not @NULL@, this command
+-- /should/ be executed again before
+-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', with
+-- @pPresentationInfo@ set to matching values.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkAntiLagUpdateAMD-antiLag-10061# The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-antiLag antiLag>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkAntiLagUpdateAMD-device-parameter# @device@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkAntiLagUpdateAMD-pData-parameter# @pData@ /must/ be a valid
+--     pointer to a valid 'AntiLagDataAMD' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_anti_lag VK_AMD_anti_lag>,
+-- 'AntiLagDataAMD', 'Vulkan.Core10.Handles.Device'
+antiLagUpdateAMD :: forall io
+                  . (MonadIO io)
+                 => -- | @device@ is the logical device
+                    Device
+                 -> -- | @pData@ is a pointer to a 'AntiLagDataAMD' structure containing latency
+                    -- reduction parameters.
+                    AntiLagDataAMD
+                 -> io ()
+antiLagUpdateAMD device data' = liftIO . evalContT $ do
+  let vkAntiLagUpdateAMDPtr = pVkAntiLagUpdateAMD (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkAntiLagUpdateAMDPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAntiLagUpdateAMD is null" Nothing Nothing
+  let vkAntiLagUpdateAMD' = mkVkAntiLagUpdateAMD vkAntiLagUpdateAMDPtr
+  pData <- ContT $ withCStruct (data')
+  lift $ traceAroundEvent "vkAntiLagUpdateAMD" (vkAntiLagUpdateAMD'
+                                                  (deviceHandle (device))
+                                                  pData)
+  pure $ ()
+
+
+-- | VkPhysicalDeviceAntiLagFeaturesAMD - Structure describing whether
+-- VK_AMD_anti_lag can be supported by an implementation.
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceAntiLagFeaturesAMD' 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. 'PhysicalDeviceAntiLagFeaturesAMD' /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_AMD_anti_lag VK_AMD_anti_lag>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceAntiLagFeaturesAMD = PhysicalDeviceAntiLagFeaturesAMD
+  { -- | #features-antiLag# @antiLag@ indicates whether the implementation
+    -- supports AMD Radeon™ Anti-Lag functionality. The @antiLag@ feature only
+    -- supports a single GPU and /must/ not be enabled if
+    -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.DeviceGroupDeviceCreateInfo'::@physicalDeviceCount@
+    -- is greater than 1.
+    antiLag :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceAntiLagFeaturesAMD)
+#endif
+deriving instance Show PhysicalDeviceAntiLagFeaturesAMD
+
+instance ToCStruct PhysicalDeviceAntiLagFeaturesAMD where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceAntiLagFeaturesAMD{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (antiLag))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceAntiLagFeaturesAMD where
+  peekCStruct p = do
+    antiLag <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceAntiLagFeaturesAMD
+             (bool32ToBool antiLag)
+
+instance Storable PhysicalDeviceAntiLagFeaturesAMD where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceAntiLagFeaturesAMD where
+  zero = PhysicalDeviceAntiLagFeaturesAMD
+           zero
+
+
+-- | VkAntiLagDataAMD - Structure specifying the parameters for
+-- vkAntiLagUpdateAMD
+--
+-- = Description
+--
+-- This structure specifies anti-lag parameters.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkAntiLagDataAMD-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ANTI_LAG_DATA_AMD'
+--
+-- -   #VUID-VkAntiLagDataAMD-mode-parameter# @mode@ /must/ be a valid
+--     'AntiLagModeAMD' value
+--
+-- -   #VUID-VkAntiLagDataAMD-pPresentationInfo-parameter# If
+--     @pPresentationInfo@ is not @NULL@, @pPresentationInfo@ /must/ be a
+--     valid pointer to a valid 'AntiLagPresentationInfoAMD' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_anti_lag VK_AMD_anti_lag>,
+-- 'AntiLagModeAMD', 'AntiLagPresentationInfoAMD',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'antiLagUpdateAMD'
+data AntiLagDataAMD = AntiLagDataAMD
+  { -- | @mode@ is a 'AntiLagModeAMD' value specifying the anti-lag status.
+    mode :: AntiLagModeAMD
+  , -- | @maxFPS@ is the framerate limit, in frames per second, used by the
+    -- application. This limit will be imposed if anti-lag is enabled. If the
+    -- application tries to render faster, the framerate will be reduced to
+    -- match this limit. A value of 0 will disable the limit.
+    maxFPS :: Word32
+  , -- | @pPresentationInfo@ is a pointer to a 'AntiLagPresentationInfoAMD'
+    -- structure containing information about the application stage.
+    presentationInfo :: Maybe AntiLagPresentationInfoAMD
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (AntiLagDataAMD)
+#endif
+deriving instance Show AntiLagDataAMD
+
+instance ToCStruct AntiLagDataAMD where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p AntiLagDataAMD{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ANTI_LAG_DATA_AMD)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr AntiLagModeAMD)) (mode)
+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (maxFPS)
+    pPresentationInfo'' <- case (presentationInfo) of
+      Nothing -> pure nullPtr
+      Just j -> ContT $ withCStruct (j)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr AntiLagPresentationInfoAMD))) pPresentationInfo''
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ANTI_LAG_DATA_AMD)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr AntiLagModeAMD)) (zero)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct AntiLagDataAMD where
+  peekCStruct p = do
+    mode <- peek @AntiLagModeAMD ((p `plusPtr` 16 :: Ptr AntiLagModeAMD))
+    maxFPS <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    pPresentationInfo <- peek @(Ptr AntiLagPresentationInfoAMD) ((p `plusPtr` 24 :: Ptr (Ptr AntiLagPresentationInfoAMD)))
+    pPresentationInfo' <- maybePeek (\j -> peekCStruct @AntiLagPresentationInfoAMD (j)) pPresentationInfo
+    pure $ AntiLagDataAMD
+             mode maxFPS pPresentationInfo'
+
+instance Zero AntiLagDataAMD where
+  zero = AntiLagDataAMD
+           zero
+           zero
+           Nothing
+
+
+-- | VkAntiLagPresentationInfoAMD - Structure specifying information about
+-- stage
+--
+-- = Description
+--
+-- This structure specifies information about the presentation stage for
+-- which anti-lag parameters are being set.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_anti_lag VK_AMD_anti_lag>,
+-- 'AntiLagDataAMD', 'AntiLagStageAMD',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data AntiLagPresentationInfoAMD = AntiLagPresentationInfoAMD
+  { -- | @stage@ is a 'AntiLagStageAMD' value specifying the current application
+    -- stage.
+    --
+    -- #VUID-VkAntiLagPresentationInfoAMD-stage-parameter# @stage@ /must/ be a
+    -- valid 'AntiLagStageAMD' value
+    stage :: AntiLagStageAMD
+  , -- | @frameIndex@ is set just before the application processes input data
+    -- ('ANTI_LAG_STAGE_INPUT_AMD'). The same @frameIndex@ value /should/ be
+    -- set before the frame with current input data will be presented by
+    -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR'
+    -- ('ANTI_LAG_STAGE_PRESENT_AMD'). This /should/ be done for each frame.
+    frameIndex :: Word64
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (AntiLagPresentationInfoAMD)
+#endif
+deriving instance Show AntiLagPresentationInfoAMD
+
+instance ToCStruct AntiLagPresentationInfoAMD where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p AntiLagPresentationInfoAMD{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr AntiLagStageAMD)) (stage)
+    poke ((p `plusPtr` 24 :: Ptr Word64)) (frameIndex)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr AntiLagStageAMD)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)
+    f
+
+instance FromCStruct AntiLagPresentationInfoAMD where
+  peekCStruct p = do
+    stage <- peek @AntiLagStageAMD ((p `plusPtr` 16 :: Ptr AntiLagStageAMD))
+    frameIndex <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))
+    pure $ AntiLagPresentationInfoAMD
+             stage frameIndex
+
+instance Storable AntiLagPresentationInfoAMD where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero AntiLagPresentationInfoAMD where
+  zero = AntiLagPresentationInfoAMD
+           zero
+           zero
+
+
+-- | VkAntiLagModeAMD - Set the status of the anti-lag feature
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_anti_lag VK_AMD_anti_lag>,
+-- 'AntiLagDataAMD'
+newtype AntiLagModeAMD = AntiLagModeAMD Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'ANTI_LAG_MODE_DRIVER_CONTROL_AMD' specifies that anti-lag will be
+-- enabled or disabled depending on driver settings.
+pattern ANTI_LAG_MODE_DRIVER_CONTROL_AMD = AntiLagModeAMD 0
+
+-- | 'ANTI_LAG_MODE_ON_AMD' specifies that anti-lag will be enabled.
+pattern ANTI_LAG_MODE_ON_AMD = AntiLagModeAMD 1
+
+-- | 'ANTI_LAG_MODE_OFF_AMD' specifies that anti-lag will be disabled.
+pattern ANTI_LAG_MODE_OFF_AMD = AntiLagModeAMD 2
+
+{-# COMPLETE
+  ANTI_LAG_MODE_DRIVER_CONTROL_AMD
+  , ANTI_LAG_MODE_ON_AMD
+  , ANTI_LAG_MODE_OFF_AMD ::
+    AntiLagModeAMD
+  #-}
+
+conNameAntiLagModeAMD :: String
+conNameAntiLagModeAMD = "AntiLagModeAMD"
+
+enumPrefixAntiLagModeAMD :: String
+enumPrefixAntiLagModeAMD = "ANTI_LAG_MODE_"
+
+showTableAntiLagModeAMD :: [(AntiLagModeAMD, String)]
+showTableAntiLagModeAMD =
+  [
+    ( ANTI_LAG_MODE_DRIVER_CONTROL_AMD
+    , "DRIVER_CONTROL_AMD"
+    )
+  , (ANTI_LAG_MODE_ON_AMD, "ON_AMD")
+  , (ANTI_LAG_MODE_OFF_AMD, "OFF_AMD")
+  ]
+
+instance Show AntiLagModeAMD where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixAntiLagModeAMD
+      showTableAntiLagModeAMD
+      conNameAntiLagModeAMD
+      (\(AntiLagModeAMD x) -> x)
+      (showsPrec 11)
+
+instance Read AntiLagModeAMD where
+  readPrec =
+    enumReadPrec
+      enumPrefixAntiLagModeAMD
+      showTableAntiLagModeAMD
+      conNameAntiLagModeAMD
+      AntiLagModeAMD
+
+-- | VkAntiLagStageAMD - Report the application stage
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_anti_lag VK_AMD_anti_lag>,
+-- 'AntiLagPresentationInfoAMD'
+newtype AntiLagStageAMD = AntiLagStageAMD Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'ANTI_LAG_STAGE_INPUT_AMD' specifies the stage before processing input.
+pattern ANTI_LAG_STAGE_INPUT_AMD = AntiLagStageAMD 0
+
+-- | 'ANTI_LAG_STAGE_PRESENT_AMD' specifies the stage before
+-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR'.
+pattern ANTI_LAG_STAGE_PRESENT_AMD = AntiLagStageAMD 1
+
+{-# COMPLETE
+  ANTI_LAG_STAGE_INPUT_AMD
+  , ANTI_LAG_STAGE_PRESENT_AMD ::
+    AntiLagStageAMD
+  #-}
+
+conNameAntiLagStageAMD :: String
+conNameAntiLagStageAMD = "AntiLagStageAMD"
+
+enumPrefixAntiLagStageAMD :: String
+enumPrefixAntiLagStageAMD = "ANTI_LAG_STAGE_"
+
+showTableAntiLagStageAMD :: [(AntiLagStageAMD, String)]
+showTableAntiLagStageAMD =
+  [ (ANTI_LAG_STAGE_INPUT_AMD, "INPUT_AMD")
+  , (ANTI_LAG_STAGE_PRESENT_AMD, "PRESENT_AMD")
+  ]
+
+instance Show AntiLagStageAMD where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixAntiLagStageAMD
+      showTableAntiLagStageAMD
+      conNameAntiLagStageAMD
+      (\(AntiLagStageAMD x) -> x)
+      (showsPrec 11)
+
+instance Read AntiLagStageAMD where
+  readPrec =
+    enumReadPrec
+      enumPrefixAntiLagStageAMD
+      showTableAntiLagStageAMD
+      conNameAntiLagStageAMD
+      AntiLagStageAMD
+
+type AMD_ANTI_LAG_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_AMD_ANTI_LAG_SPEC_VERSION"
+pattern AMD_ANTI_LAG_SPEC_VERSION :: forall a . Integral a => a
+pattern AMD_ANTI_LAG_SPEC_VERSION = 1
+
+
+type AMD_ANTI_LAG_EXTENSION_NAME = "VK_AMD_anti_lag"
+
+-- No documentation found for TopLevel "VK_AMD_ANTI_LAG_EXTENSION_NAME"
+pattern AMD_ANTI_LAG_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern AMD_ANTI_LAG_EXTENSION_NAME = "VK_AMD_anti_lag"
+
diff --git a/src/Vulkan/Extensions/VK_AMD_anti_lag.hs-boot b/src/Vulkan/Extensions/VK_AMD_anti_lag.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_AMD_anti_lag.hs-boot
@@ -0,0 +1,142 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_AMD_anti_lag - device extension
+--
+-- = VK_AMD_anti_lag
+--
+-- [__Name String__]
+--     @VK_AMD_anti_lag@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     477
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__Contact__]
+--
+--     -   Stu Smith
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_AMD_anti_lag.adoc VK_AMD_anti_lag>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-06-06
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Stuart Smith, AMD
+--
+--     -   Arkadiusz Sarwa, AMD
+--
+-- == Description
+--
+-- This extension automatically paces the CPU to make sure it does not get
+-- too far ahead of the GPU, reducing the latency between inputs received
+-- and updates on the screen. Additionally, Anti-Lag+ offers applications
+-- the ability to inform the driver when input processing begins, in order
+-- to align the timing of display updates, enabling even lower latency
+-- between receiving input and displaying on the screen.
+--
+-- == New Commands
+--
+-- -   'antiLagUpdateAMD'
+--
+-- == New Structures
+--
+-- -   'AntiLagDataAMD'
+--
+-- -   'AntiLagPresentationInfoAMD'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceAntiLagFeaturesAMD'
+--
+-- == New Enums
+--
+-- -   'AntiLagModeAMD'
+--
+-- -   'AntiLagStageAMD'
+--
+-- == New Enum Constants
+--
+-- -   'AMD_ANTI_LAG_EXTENSION_NAME'
+--
+-- -   'AMD_ANTI_LAG_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ANTI_LAG_DATA_AMD'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-06-06 (Arkadiusz Sarw)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_anti_lag Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_AMD_anti_lag  ( AntiLagDataAMD
+                                          , AntiLagPresentationInfoAMD
+                                          , PhysicalDeviceAntiLagFeaturesAMD
+                                          ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data AntiLagDataAMD
+
+instance ToCStruct AntiLagDataAMD
+instance Show AntiLagDataAMD
+
+instance FromCStruct AntiLagDataAMD
+
+
+data AntiLagPresentationInfoAMD
+
+instance ToCStruct AntiLagPresentationInfoAMD
+instance Show AntiLagPresentationInfoAMD
+
+instance FromCStruct AntiLagPresentationInfoAMD
+
+
+data PhysicalDeviceAntiLagFeaturesAMD
+
+instance ToCStruct PhysicalDeviceAntiLagFeaturesAMD
+instance Show PhysicalDeviceAntiLagFeaturesAMD
+
+instance FromCStruct PhysicalDeviceAntiLagFeaturesAMD
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_buffer_marker - device extension
 --
--- == VK_AMD_buffer_marker
+-- = VK_AMD_buffer_marker
 --
 -- [__Name String__]
 --     @VK_AMD_buffer_marker@
@@ -23,6 +23,12 @@
 -- [__Extension and Version Dependencies__]
 --     None
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_KHR_synchronization2
+--
 -- [__Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>
@@ -61,6 +67,14 @@
 --
 -- -   'cmdWriteBufferMarkerAMD'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+-- is supported:
+--
+-- -   'cmdWriteBufferMarker2AMD'
+--
 -- == New Enum Constants
 --
 -- -   'AMD_BUFFER_MARKER_EXTENSION_NAME'
@@ -79,7 +93,7 @@
 --
 -- == See Also
 --
--- 'cmdWriteBufferMarkerAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -89,6 +103,7 @@
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_AMD_buffer_marker  ( cmdWriteBufferMarkerAMD
+                                               , cmdWriteBufferMarker2AMD
                                                , AMD_BUFFER_MARKER_SPEC_VERSION
                                                , pattern AMD_BUFFER_MARKER_SPEC_VERSION
                                                , AMD_BUFFER_MARKER_EXTENSION_NAME
@@ -114,10 +129,13 @@
 import Vulkan.Core10.Handles (CommandBuffer(..))
 import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
 import Vulkan.Core10.Handles (CommandBuffer_T)
+import Vulkan.Dynamic (DeviceCmds(pVkCmdWriteBufferMarker2AMD))
 import Vulkan.Dynamic (DeviceCmds(pVkCmdWriteBufferMarkerAMD))
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
 import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits)
 import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(..))
+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(..))
+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
   unsafe
@@ -140,21 +158,17 @@
 -- While consecutive buffer marker writes with the same @pipelineStage@
 -- parameter are implicitly complete in submission order, memory and
 -- execution dependencies between buffer marker writes and other operations
--- must still be explicitly ordered using synchronization commands. The
+-- /must/ still be explicitly ordered using synchronization commands. The
 -- access scope for buffer marker writes falls under the
 -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT', and the
 -- pipeline stages for identifying the synchronization scope /must/ include
 -- both @pipelineStage@ and
 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'.
 --
--- Note
---
 -- Similar to 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp', if
 -- an implementation is unable to write a marker at any specific pipeline
 -- stage, it /may/ instead do so at any logically later stage.
 --
--- Note
---
 -- Implementations /may/ only support a limited number of pipelined marker
 -- write operations in flight at a given time, thus excessive number of
 -- marker write operations /may/ degrade command execution performance.
@@ -205,11 +219,11 @@
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
 --
 -- -   #VUID-vkCmdWriteBufferMarkerAMD-shadingRateImage-07314# If neither
---     the
+--     of the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
+--     or the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @pipelineStage@ /must/ not be
+--     features are enabled, @pipelineStage@ /must/ not be
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   #VUID-vkCmdWriteBufferMarkerAMD-synchronization2-06489# If the
@@ -218,11 +232,11 @@
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE'
 --
 -- -   #VUID-vkCmdWriteBufferMarkerAMD-rayTracingPipeline-07943# If neither
---     the
+--     of 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
+--     extension or the
+--     <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-vkCmdWriteBufferMarkerAMD-dstOffset-01798# @dstOffset@ /must/
@@ -328,6 +342,224 @@
                                                   (dstBuffer)
                                                   (dstOffset)
                                                   (marker))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdWriteBufferMarker2AMD
+  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> Buffer -> DeviceSize -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags2 -> Buffer -> DeviceSize -> Word32 -> IO ()
+
+-- | vkCmdWriteBufferMarker2AMD - Execute a pipelined write of a marker value
+-- into a buffer
+--
+-- = Description
+--
+-- The command will write the 32-bit marker value into the buffer only
+-- after all preceding commands have finished executing up to at least the
+-- specified pipeline stage. This includes the completion of other
+-- preceding 'cmdWriteBufferMarker2AMD' commands so long as their specified
+-- pipeline stages occur either at the same time or earlier than this
+-- command’s specified @stage@.
+--
+-- While consecutive buffer marker writes with the same @stage@ parameter
+-- implicitly complete in submission order, memory and execution
+-- dependencies between buffer marker writes and other operations /must/
+-- still be explicitly ordered using synchronization commands. The access
+-- scope for buffer marker writes falls under the
+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT', and the
+-- pipeline stages for identifying the synchronization scope /must/ include
+-- both @stage@ and
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'.
+--
+-- Similar to
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',
+-- if an implementation is unable to write a marker at any specific
+-- pipeline stage, it /may/ instead do so at any logically later stage.
+--
+-- Implementations /may/ only support a limited number of pipelined marker
+-- write operations in flight at a given time. Thus an excessive number of
+-- marker write operations /may/ degrade command execution performance.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03929# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is not enabled, @stage@ /must/ not contain
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03930# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is not enabled, @stage@ /must/ not contain
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'
+--     or
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03931# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
+--     feature is not enabled, @stage@ /must/ not contain
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03932# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
+--     feature is not enabled, @stage@ /must/ not contain
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03933# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
+--     feature is not enabled, @stage@ /must/ not contain
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03934# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is not enabled, @stage@ /must/ not contain
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03935# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is not enabled, @stage@ /must/ not contain
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-07316# If neither of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     features are enabled, @stage@ /must/ not contain
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- -   #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_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-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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
+--     feature are enabled, @stage@ /must/ not contain
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893# The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03894# @stage@ /must/ include
+--     only a single pipeline stage
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03895# @stage@ /must/ include
+--     only stages that are valid for the queue family that was used to
+--     create the command pool that @commandBuffer@ was allocated from
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896# @dstOffset@ /must/
+--     be less than or equal to the size of @dstBuffer@ minus @4@
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897# @dstBuffer@ /must/
+--     have been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898# If @dstBuffer@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899# @dstOffset@ /must/
+--     be a multiple of @4@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-parameter# @stage@ /must/ be
+--     a valid combination of
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'
+--     values
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameter# @dstBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-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-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support transfer, graphics, or compute
+--     operations
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-videocoding# This command /must/
+--     only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker VK_AMD_buffer_marker>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2'
+cmdWriteBufferMarker2AMD :: forall io
+                          . (MonadIO io)
+                         => -- | @commandBuffer@ is the command buffer into which the command will be
+                            -- recorded.
+                            CommandBuffer
+                         -> -- | @stage@ specifies the pipeline stage whose completion triggers the
+                            -- marker write.
+                            PipelineStageFlags2
+                         -> -- | @dstBuffer@ is the buffer where the marker will be written.
+                            ("dstBuffer" ::: Buffer)
+                         -> -- | @dstOffset@ is the byte offset into the buffer where the marker will be
+                            -- written.
+                            ("dstOffset" ::: DeviceSize)
+                         -> -- | @marker@ is the 32-bit value of the marker.
+                            ("marker" ::: Word32)
+                         -> io ()
+cmdWriteBufferMarker2AMD commandBuffer
+                           stage
+                           dstBuffer
+                           dstOffset
+                           marker = liftIO $ do
+  let vkCmdWriteBufferMarker2AMDPtr = pVkCmdWriteBufferMarker2AMD (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdWriteBufferMarker2AMDPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteBufferMarker2AMD is null" Nothing Nothing
+  let vkCmdWriteBufferMarker2AMD' = mkVkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMDPtr
+  traceAroundEvent "vkCmdWriteBufferMarker2AMD" (vkCmdWriteBufferMarker2AMD'
+                                                   (commandBufferHandle (commandBuffer))
+                                                   (stage)
+                                                   (dstBuffer)
+                                                   (dstOffset)
+                                                   (marker))
   pure $ ()
 
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_device_coherent_memory - device extension
 --
--- == VK_AMD_device_coherent_memory
+-- = VK_AMD_device_coherent_memory
 --
 -- [__Name String__]
 --     @VK_AMD_device_coherent_memory@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -86,7 +88,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceCoherentMemoryFeaturesAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_device_coherent_memory - device extension
 --
--- == VK_AMD_device_coherent_memory
+-- = VK_AMD_device_coherent_memory
 --
 -- [__Name String__]
 --     @VK_AMD_device_coherent_memory@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -86,7 +88,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceCoherentMemoryFeaturesAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_display_native_hdr - device extension
 --
--- == VK_AMD_display_native_hdr
+-- = VK_AMD_display_native_hdr
 --
 -- [__Name String__]
 --     @VK_AMD_display_native_hdr@
@@ -21,7 +21,11 @@
 --     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 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 VK_KHR_get_surface_capabilities2>
 --     and
@@ -114,8 +118,7 @@
 --
 -- == See Also
 --
--- 'DisplayNativeHdrSurfaceCapabilitiesAMD',
--- 'SwapchainDisplayNativeHdrCreateInfoAMD', 'setLocalDimmingAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_display_native_hdr - device extension
 --
--- == VK_AMD_display_native_hdr
+-- = VK_AMD_display_native_hdr
 --
 -- [__Name String__]
 --     @VK_AMD_display_native_hdr@
@@ -21,7 +21,11 @@
 --     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 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 VK_KHR_get_surface_capabilities2>
 --     and
@@ -114,8 +118,7 @@
 --
 -- == See Also
 --
--- 'DisplayNativeHdrSurfaceCapabilitiesAMD',
--- 'SwapchainDisplayNativeHdrCreateInfoAMD', 'setLocalDimmingAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_draw_indirect_count - device extension
 --
--- == VK_AMD_draw_indirect_count
+-- = VK_AMD_draw_indirect_count
 --
 -- [__Name String__]
 --     @VK_AMD_draw_indirect_count@
@@ -68,7 +68,7 @@
 --
 -- All functionality in this extension is included in
 -- @VK_KHR_draw_indirect_count@, with the suffix changed to KHR. The
--- original type, enum and command names are still available as aliases of
+-- original type, enum, and command names are still available as aliases of
 -- the core functionality.
 --
 -- == New Commands
@@ -95,7 +95,7 @@
 --
 -- == See Also
 --
--- 'cmdDrawIndexedIndirectCountAMD', 'cmdDrawIndirectCountAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_gcn_shader - device extension
 --
--- == VK_AMD_gcn_shader
+-- = VK_AMD_gcn_shader
 --
 -- [__Name String__]
 --     @VK_AMD_gcn_shader@
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_gpu_shader_half_float - device extension
 --
--- == VK_AMD_gpu_shader_half_float
+-- = VK_AMD_gpu_shader_half_float
 --
 -- [__Name String__]
 --     @VK_AMD_gpu_shader_half_float@
@@ -74,10 +74,10 @@
 --
 -- == Deprecation by @VK_KHR_shader_float16_int8@
 --
--- Functionality in this extension was included in
--- @VK_KHR_shader_float16_int8@ extension, when
--- 'Vulkan.Extensions.VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8FeaturesKHR'::@shaderFloat16@
--- is enabled.
+-- Functionality in this extension is included in the
+-- @VK_KHR_shader_float16_int8@ extension, when the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderFloat16 shaderFloat16>
+-- feature is enabled.
 --
 -- == New Enum Constants
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_gpu_shader_int16 - device extension
 --
--- == VK_AMD_gpu_shader_int16
+-- = VK_AMD_gpu_shader_int16
 --
 -- [__Name String__]
 --     @VK_AMD_gpu_shader_int16@
@@ -75,12 +75,12 @@
 --
 -- == Deprecation by @VK_KHR_shader_float16_int8@
 --
--- Functionality in this extension was included in
--- @VK_KHR_shader_float16_int8@ extension, when
--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceFeatures'::@shaderInt16@
+-- Functionality in this extension is included in the
+-- @VK_KHR_shader_float16_int8@ extension, when the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderInt16 shaderInt16>
 -- and
--- 'Vulkan.Extensions.VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8FeaturesKHR'::@shaderFloat16@
--- are enabled.
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderFloat16 shaderFloat16>
+-- features are enabled.
 --
 -- == New Enum Constants
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_memory_overallocation_behavior - device extension
 --
--- == VK_AMD_memory_overallocation_behavior
+-- = VK_AMD_memory_overallocation_behavior
 --
 -- [__Name String__]
 --     @VK_AMD_memory_overallocation_behavior@
@@ -82,8 +82,7 @@
 --
 -- == See Also
 --
--- 'DeviceMemoryOverallocationCreateInfoAMD',
--- 'MemoryOverallocationBehaviorAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_memory_overallocation_behavior - device extension
 --
--- == VK_AMD_memory_overallocation_behavior
+-- = VK_AMD_memory_overallocation_behavior
 --
 -- [__Name String__]
 --     @VK_AMD_memory_overallocation_behavior@
@@ -82,8 +82,7 @@
 --
 -- == See Also
 --
--- 'DeviceMemoryOverallocationCreateInfoAMD',
--- 'MemoryOverallocationBehaviorAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_mixed_attachment_samples - device extension
 --
--- == VK_AMD_mixed_attachment_samples
+-- = VK_AMD_mixed_attachment_samples
 --
 -- [__Name String__]
 --     @VK_AMD_mixed_attachment_samples@
@@ -23,6 +23,12 @@
 -- [__Extension and Version Dependencies__]
 --     None
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_KHR_dynamic_rendering
+--
 -- [__Contact__]
 --
 --     -   Matthaeus G. Chajdas
@@ -53,12 +59,36 @@
 -- only the first color sample count number of samples get a corresponding
 -- color output.
 --
+-- == New Structures
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.CommandBuffer.CommandBufferInheritanceInfo',
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':
+--
+--     -   'AttachmentSampleCountInfoAMD'
+--
 -- == New Enum Constants
 --
 -- -   'AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME'
 --
 -- -   'AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD'
+--
 -- == Issues
 --
 -- None.
@@ -80,13 +110,136 @@
 --
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
-module Vulkan.Extensions.VK_AMD_mixed_attachment_samples  ( AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION
+module Vulkan.Extensions.VK_AMD_mixed_attachment_samples  ( AttachmentSampleCountInfoAMD(..)
+                                                          , AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION
                                                           , pattern AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION
                                                           , AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME
                                                           , pattern AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME
                                                           ) where
 
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+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 Data.String (IsString)
+import Data.Typeable (Typeable)
+import Foreign.Storable (Storable(peek))
+import Foreign.Storable (Storable(poke))
+import GHC.Generics (Generic)
+import Foreign.Ptr (Ptr)
+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.Enums.SampleCountFlagBits (SampleCountFlagBits)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD))
+-- | VkAttachmentSampleCountInfoAMD - Structure specifying command buffer
+-- inheritance info for dynamic render pass instances
+--
+-- = Description
+--
+-- If
+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@
+-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
+-- is specified in
+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@, and the
+-- @pNext@ chain of
+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes
+-- 'AttachmentSampleCountInfoAMD', then this structure defines the sample
+-- counts of each attachment within the render pass instance. If
+-- 'AttachmentSampleCountInfoAMD' is not included, the value of
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@
+-- is used as the sample count for each attachment. If
+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@
+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', or
+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
+-- is not specified in
+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@,
+-- parameters of this structure are ignored.
+--
+-- '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 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
+-- 'Vulkan.Core10.Handles.RenderPass', the value of
+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@
+-- is used as the sample count for each attachment. If a graphics pipeline
+-- is created with a valid 'Vulkan.Core10.Handles.RenderPass', parameters
+-- of this structure are ignored.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data AttachmentSampleCountInfoAMD = AttachmentSampleCountInfoAMD
+  { -- | @pColorAttachmentSamples@ is a pointer to an array of
+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values
+    -- defining the sample count of color attachments.
+    colorAttachmentSamples :: Vector SampleCountFlagBits
+  , -- | @depthStencilAttachmentSamples@ is a
+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value
+    -- defining the sample count of a depth\/stencil attachment.
+    depthStencilAttachmentSamples :: SampleCountFlagBits
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (AttachmentSampleCountInfoAMD)
+#endif
+deriving instance Show AttachmentSampleCountInfoAMD
+
+instance ToCStruct AttachmentSampleCountInfoAMD where
+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p AttachmentSampleCountInfoAMD{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentSamples)) :: Word32))
+    pPColorAttachmentSamples' <- ContT $ allocaBytes @SampleCountFlagBits ((Data.Vector.length (colorAttachmentSamples)) * 4)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentSamples' `plusPtr` (4 * (i)) :: Ptr SampleCountFlagBits) (e)) (colorAttachmentSamples)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SampleCountFlagBits))) (pPColorAttachmentSamples')
+    lift $ poke ((p `plusPtr` 32 :: Ptr SampleCountFlagBits)) (depthStencilAttachmentSamples)
+    lift $ f
+  cStructSize = 40
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct AttachmentSampleCountInfoAMD where
+  peekCStruct p = do
+    colorAttachmentCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pColorAttachmentSamples <- peek @(Ptr SampleCountFlagBits) ((p `plusPtr` 24 :: Ptr (Ptr SampleCountFlagBits)))
+    pColorAttachmentSamples' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @SampleCountFlagBits ((pColorAttachmentSamples `advancePtrBytes` (4 * (i)) :: Ptr SampleCountFlagBits)))
+    depthStencilAttachmentSamples <- peek @SampleCountFlagBits ((p `plusPtr` 32 :: Ptr SampleCountFlagBits))
+    pure $ AttachmentSampleCountInfoAMD
+             pColorAttachmentSamples' depthStencilAttachmentSamples
+
+instance Zero AttachmentSampleCountInfoAMD where
+  zero = AttachmentSampleCountInfoAMD
+           mempty
+           zero
+
 
 type AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION = 1
 
diff --git a/src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs-boot b/src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs-boot
@@ -0,0 +1,125 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_AMD_mixed_attachment_samples - device extension
+--
+-- = VK_AMD_mixed_attachment_samples
+--
+-- [__Name String__]
+--     @VK_AMD_mixed_attachment_samples@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     137
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_KHR_dynamic_rendering
+--
+-- [__Contact__]
+--
+--     -   Matthaeus G. Chajdas
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_AMD_mixed_attachment_samples] @anteru%0A*Here describe the issue or question you have about the VK_AMD_mixed_attachment_samples extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2017-07-24
+--
+-- [__Contributors__]
+--
+--     -   Mais Alnasser, AMD
+--
+--     -   Matthaeus G. Chajdas, AMD
+--
+--     -   Maciej Jesionowski, AMD
+--
+--     -   Daniel Rakos, AMD
+--
+-- == Description
+--
+-- This extension enables applications to use multisampled rendering with a
+-- depth\/stencil sample count that is larger than the color sample count.
+-- Having a depth\/stencil sample count larger than the color sample count
+-- allows maintaining geometry and coverage information at a higher sample
+-- rate than color information. All samples are depth\/stencil tested, but
+-- only the first color sample count number of samples get a corresponding
+-- color output.
+--
+-- == New Structures
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.CommandBuffer.CommandBufferInheritanceInfo',
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':
+--
+--     -   'AttachmentSampleCountInfoAMD'
+--
+-- == New Enum Constants
+--
+-- -   'AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME'
+--
+-- -   'AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD'
+--
+-- == Issues
+--
+-- None.
+--
+-- == Version History
+--
+-- -   Revision 1, 2017-07-24 (Daniel Rakos)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_AMD_mixed_attachment_samples  (AttachmentSampleCountInfoAMD) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data AttachmentSampleCountInfoAMD
+
+instance ToCStruct AttachmentSampleCountInfoAMD
+instance Show AttachmentSampleCountInfoAMD
+
+instance FromCStruct AttachmentSampleCountInfoAMD
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_negative_viewport_height - device extension
 --
--- == VK_AMD_negative_viewport_height
+-- = VK_AMD_negative_viewport_height
 --
 -- [__Name String__]
 --     @VK_AMD_negative_viewport_height@
@@ -67,10 +67,11 @@
 --
 -- == Obsoletion by @VK_KHR_maintenance1@ and Vulkan 1.1
 --
--- Functionality in this extension is included in @VK_KHR_maintenance1@ and
--- subsequently Vulkan 1.1. Due to some slight behavioral differences, this
--- extension /must/ not be enabled alongside @VK_KHR_maintenance1@, or in
--- an instance created with version 1.1 or later requested in
+-- Functionality in this extension is included in the @VK_KHR_maintenance1@
+-- extension and subsequently Vulkan 1.1. Due to some slight behavioral
+-- differences, this extension /must/ not be enabled alongside
+-- @VK_KHR_maintenance1@, or in an instance created with version 1.1 or
+-- later requested in
 -- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@.
 --
 -- == New Enum Constants
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_pipeline_compiler_control - device extension
 --
--- == VK_AMD_pipeline_compiler_control
+-- = VK_AMD_pipeline_compiler_control
 --
 -- [__Name String__]
 --     @VK_AMD_pipeline_compiler_control@
@@ -94,8 +94,7 @@
 --
 -- == See Also
 --
--- 'PipelineCompilerControlCreateInfoAMD',
--- 'PipelineCompilerControlFlagBitsAMD', 'PipelineCompilerControlFlagsAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_pipeline_compiler_control - device extension
 --
--- == VK_AMD_pipeline_compiler_control
+-- = VK_AMD_pipeline_compiler_control
 --
 -- [__Name String__]
 --     @VK_AMD_pipeline_compiler_control@
@@ -94,8 +94,7 @@
 --
 -- == See Also
 --
--- 'PipelineCompilerControlCreateInfoAMD',
--- 'PipelineCompilerControlFlagBitsAMD', 'PipelineCompilerControlFlagsAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_rasterization_order - device extension
 --
--- == VK_AMD_rasterization_order
+-- = VK_AMD_rasterization_order
 --
 -- [__Name String__]
 --     @VK_AMD_rasterization_order@
@@ -156,8 +156,7 @@
 --
 -- == See Also
 --
--- 'PipelineRasterizationStateRasterizationOrderAMD',
--- 'RasterizationOrderAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_rasterization_order - device extension
 --
--- == VK_AMD_rasterization_order
+-- = VK_AMD_rasterization_order
 --
 -- [__Name String__]
 --     @VK_AMD_rasterization_order@
@@ -156,8 +156,7 @@
 --
 -- == See Also
 --
--- 'PipelineRasterizationStateRasterizationOrderAMD',
--- 'RasterizationOrderAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_shader_ballot - device extension
 --
--- == VK_AMD_shader_ballot
+-- = VK_AMD_shader_ballot
 --
 -- [__Name String__]
 --     @VK_AMD_shader_ballot@
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_shader_core_properties - device extension
 --
--- == VK_AMD_shader_core_properties
+-- = VK_AMD_shader_core_properties
 --
 -- [__Name String__]
 --     @VK_AMD_shader_core_properties@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -142,7 +144,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderCorePropertiesAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_shader_core_properties - device extension
 --
--- == VK_AMD_shader_core_properties
+-- = VK_AMD_shader_core_properties
 --
 -- [__Name String__]
 --     @VK_AMD_shader_core_properties@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -142,7 +144,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderCorePropertiesAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_shader_core_properties2 - device extension
 --
--- == VK_AMD_shader_core_properties2
+-- = VK_AMD_shader_core_properties2
 --
 -- [__Name String__]
 --     @VK_AMD_shader_core_properties2@
@@ -85,8 +85,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderCoreProperties2AMD',
--- 'ShaderCorePropertiesFlagBitsAMD', 'ShaderCorePropertiesFlagsAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_shader_core_properties2 - device extension
 --
--- == VK_AMD_shader_core_properties2
+-- = VK_AMD_shader_core_properties2
 --
 -- [__Name String__]
 --     @VK_AMD_shader_core_properties2@
@@ -85,8 +85,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderCoreProperties2AMD',
--- 'ShaderCorePropertiesFlagBitsAMD', 'ShaderCorePropertiesFlagsAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_shader_early_and_late_fragment_tests - device extension
 --
--- == VK_AMD_shader_early_and_late_fragment_tests
+-- = VK_AMD_shader_early_and_late_fragment_tests
 --
 -- [__Name String__]
 --     @VK_AMD_shader_early_and_late_fragment_tests@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -56,8 +58,8 @@
 -- /and/ late fragment tests with the @EarlyAndLateFragmentTestsAMD@
 -- execution mode.
 --
--- If @VK_EXT_shader_stencil_export@ is supported, additional execution
--- modes allowing early depth tests similar to @DepthUnchanged@,
+-- If the @VK_EXT_shader_stencil_export@ extension is supported, additional
+-- execution modes allowing early depth tests similar to @DepthUnchanged@,
 -- @DepthLess@, and @DepthGreater@ are provided.
 --
 -- == New Structures
@@ -86,7 +88,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_shader_early_and_late_fragment_tests - device extension
 --
--- == VK_AMD_shader_early_and_late_fragment_tests
+-- = VK_AMD_shader_early_and_late_fragment_tests
 --
 -- [__Name String__]
 --     @VK_AMD_shader_early_and_late_fragment_tests@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -56,8 +58,8 @@
 -- /and/ late fragment tests with the @EarlyAndLateFragmentTestsAMD@
 -- execution mode.
 --
--- If @VK_EXT_shader_stencil_export@ is supported, additional execution
--- modes allowing early depth tests similar to @DepthUnchanged@,
+-- If the @VK_EXT_shader_stencil_export@ extension is supported, additional
+-- execution modes allowing early depth tests similar to @DepthUnchanged@,
 -- @DepthLess@, and @DepthGreater@ are provided.
 --
 -- == New Structures
@@ -86,7 +88,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_shader_explicit_vertex_parameter - device extension
 --
--- == VK_AMD_shader_explicit_vertex_parameter
+-- = VK_AMD_shader_explicit_vertex_parameter
 --
 -- [__Name String__]
 --     @VK_AMD_shader_explicit_vertex_parameter@
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_shader_fragment_mask - device extension
 --
--- == VK_AMD_shader_fragment_mask
+-- = VK_AMD_shader_fragment_mask
 --
 -- [__Name String__]
 --     @VK_AMD_shader_fragment_mask@
@@ -43,7 +43,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/amd/GL_AMD_shader_fragment_mask.txt GL_AMD_shader_fragment_mask>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/amd/GL_AMD_shader_fragment_mask.txt GL_AMD_shader_fragment_mask>
 --
 -- [__Contributors__]
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_shader_image_load_store_lod - device extension
 --
--- == VK_AMD_shader_image_load_store_lod
+-- = VK_AMD_shader_image_load_store_lod
 --
 -- [__Name String__]
 --     @VK_AMD_shader_image_load_store_lod@
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_shader_info - device extension
 --
--- == VK_AMD_shader_info
+-- = VK_AMD_shader_info
 --
 -- [__Name String__]
 --     @VK_AMD_shader_info@
@@ -144,8 +144,7 @@
 --
 -- == See Also
 --
--- 'ShaderInfoTypeAMD', 'ShaderResourceUsageAMD',
--- 'ShaderStatisticsInfoAMD', 'getShaderInfoAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -251,13 +250,14 @@
 -- If @pInfo@ is @NULL@, then the maximum size of the information that
 -- /can/ be retrieved about the shader, in bytes, is returned in
 -- @pInfoSize@. Otherwise, @pInfoSize@ /must/ point to a variable set by
--- the user to the size of the buffer, in bytes, pointed to by @pInfo@, and
--- on return the variable is overwritten with the amount of data actually
--- written to @pInfo@. If @pInfoSize@ is less than the maximum size that
--- /can/ be retrieved by the pipeline cache, then at most @pInfoSize@ bytes
--- will be written to @pInfo@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE'
--- will be returned, instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to
--- indicate that not all required of the pipeline cache was returned.
+-- the application to the size of the buffer, in bytes, pointed to by
+-- @pInfo@, and on return the variable is overwritten with the amount of
+-- data actually written to @pInfo@. If @pInfoSize@ is less than the
+-- maximum size that /can/ be retrieved by the pipeline cache, then at most
+-- @pInfoSize@ bytes will be written to @pInfo@, and
+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned, instead of
+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all required
+-- of the pipeline cache was returned.
 --
 -- Not all information is available for every shader and implementations
 -- may not support all kinds of information for any shader. When a certain
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_shader_info - device extension
 --
--- == VK_AMD_shader_info
+-- = VK_AMD_shader_info
 --
 -- [__Name String__]
 --     @VK_AMD_shader_info@
@@ -144,8 +144,7 @@
 --
 -- == See Also
 --
--- 'ShaderInfoTypeAMD', 'ShaderResourceUsageAMD',
--- 'ShaderStatisticsInfoAMD', 'getShaderInfoAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_shader_trinary_minmax - device extension
 --
--- == VK_AMD_shader_trinary_minmax
+-- = VK_AMD_shader_trinary_minmax
 --
 -- [__Name String__]
 --     @VK_AMD_shader_trinary_minmax@
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_texture_gather_bias_lod - device extension
 --
--- == VK_AMD_texture_gather_bias_lod
+-- = VK_AMD_texture_gather_bias_lod
 --
 -- [__Name String__]
 --     @VK_AMD_texture_gather_bias_lod@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -144,7 +146,7 @@
 --
 -- == See Also
 --
--- 'TextureLODGatherFormatPropertiesAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -197,7 +199,7 @@
   { -- | @supportsTextureGatherLODBiasAMD@ tells if the image format can be used
     -- with texture gather bias\/LOD functions, as introduced by the
     -- @VK_AMD_texture_gather_bias_lod@ extension. This field is set by the
-    -- implementation. User-specified value is ignored.
+    -- implementation. An application-specified value is ignored.
     supportsTextureGatherLODBiasAMD :: Bool }
   deriving (Typeable, Eq)
 #if defined(GENERIC_INSTANCES)
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
@@ -3,7 +3,7 @@
 --
 -- VK_AMD_texture_gather_bias_lod - device extension
 --
--- == VK_AMD_texture_gather_bias_lod
+-- = VK_AMD_texture_gather_bias_lod
 --
 -- [__Name String__]
 --     @VK_AMD_texture_gather_bias_lod@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -144,7 +146,7 @@
 --
 -- == See Also
 --
--- 'TextureLODGatherFormatPropertiesAMD'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs b/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs
--- a/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs
+++ b/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs
@@ -3,7 +3,7 @@
 --
 -- VK_ANDROID_external_format_resolve - device extension
 --
--- == VK_ANDROID_external_format_resolve
+-- = VK_ANDROID_external_format_resolve
 --
 -- [__Name String__]
 --     @VK_ANDROID_external_format_resolve@
@@ -25,6 +25,8 @@
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_KHR_dynamic_rendering
 --
 -- [__Special Use__]
@@ -113,6 +115,8 @@
 --
 -- If
 -- <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 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending
@@ -128,9 +132,7 @@
 --
 -- == See Also
 --
--- 'AndroidHardwareBufferFormatResolvePropertiesANDROID',
--- 'PhysicalDeviceExternalFormatResolveFeaturesANDROID',
--- 'PhysicalDeviceExternalFormatResolvePropertiesANDROID'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -373,14 +375,14 @@
     -- 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
+    -- external format, this value will be 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
+    -- resolves are not supported, this value will be
     -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'.
     colorAttachmentFormat :: Format }
   deriving (Typeable, Eq)
diff --git a/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs-boot b/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs-boot
--- a/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs-boot
+++ b/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_ANDROID_external_format_resolve - device extension
 --
--- == VK_ANDROID_external_format_resolve
+-- = VK_ANDROID_external_format_resolve
 --
 -- [__Name String__]
 --     @VK_ANDROID_external_format_resolve@
@@ -25,6 +25,8 @@
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_KHR_dynamic_rendering
 --
 -- [__Special Use__]
@@ -113,6 +115,8 @@
 --
 -- If
 -- <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 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending
@@ -128,9 +132,7 @@
 --
 -- == See Also
 --
--- 'AndroidHardwareBufferFormatResolvePropertiesANDROID',
--- 'PhysicalDeviceExternalFormatResolveFeaturesANDROID',
--- 'PhysicalDeviceExternalFormatResolvePropertiesANDROID'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_ANDROID_external_memory_android_hardware_buffer - device extension
 --
--- == VK_ANDROID_external_memory_android_hardware_buffer
+-- = VK_ANDROID_external_memory_android_hardware_buffer
 --
 -- [__Name String__]
 --     @VK_ANDROID_external_memory_android_hardware_buffer@
@@ -21,16 +21,24 @@
 --     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
+--              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 Vulkan 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>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dedicated_allocation VK_KHR_dedicated_allocation>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_KHR_format_feature_flags2
 --
 -- [__Contact__]
@@ -119,6 +127,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending 'AndroidHardwareBufferPropertiesANDROID':
@@ -152,6 +162,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
@@ -271,13 +283,7 @@
 --
 -- == See Also
 --
--- 'AHardwareBuffer', 'AndroidHardwareBufferFormatPropertiesANDROID',
--- 'AndroidHardwareBufferPropertiesANDROID',
--- 'AndroidHardwareBufferUsageANDROID', 'ExternalFormatANDROID',
--- 'ImportAndroidHardwareBufferInfoANDROID',
--- 'MemoryGetAndroidHardwareBufferInfoANDROID',
--- 'getAndroidHardwareBufferPropertiesANDROID',
--- 'getMemoryAndroidHardwareBufferANDROID'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -608,8 +614,6 @@
 -- (@AHARDWAREBUFFER_USAGE_GPU_*@), even if none of the corresponding
 -- Vulkan usages or flags are requested.
 --
--- Note
---
 -- Requiring at least one GPU usage flag ensures that Android hardware
 -- buffer memory will be allocated in a memory pool accessible to the
 -- Vulkan implementation, and that specializing the memory layout based on
@@ -858,8 +862,6 @@
 -- and
 -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT'.
 --
--- Note
---
 -- The @formatFeatures@ member only indicates the features available when
 -- using an
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external-format image>
@@ -914,8 +916,6 @@
 -- external image via @samplerExternalOES@ in OpenGL ES using equivalent
 -- sampler parameters.
 --
--- Note
---
 -- Since
 -- <https://registry.khronos.org/OpenGL/extensions/OES/OES_EGL_image_external.txt GL_OES_EGL_image_external>
 -- does not require the same sampling and conversion calculations as Vulkan
@@ -1116,6 +1116,7 @@
 --
 -- <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>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
 -- 'Vulkan.Core11.Enums.ChromaLocation.ChromaLocation',
 -- 'Vulkan.Core10.ImageView.ComponentMapping',
 -- 'Vulkan.Core10.Enums.Format.Format',
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
@@ -3,7 +3,7 @@
 --
 -- VK_ANDROID_external_memory_android_hardware_buffer - device extension
 --
--- == VK_ANDROID_external_memory_android_hardware_buffer
+-- = VK_ANDROID_external_memory_android_hardware_buffer
 --
 -- [__Name String__]
 --     @VK_ANDROID_external_memory_android_hardware_buffer@
@@ -21,16 +21,24 @@
 --     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
+--              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 Vulkan 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>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dedicated_allocation VK_KHR_dedicated_allocation>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_KHR_format_feature_flags2
 --
 -- [__Contact__]
@@ -119,6 +127,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending 'AndroidHardwareBufferPropertiesANDROID':
@@ -152,6 +162,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
@@ -271,13 +283,7 @@
 --
 -- == See Also
 --
--- 'AHardwareBuffer', 'AndroidHardwareBufferFormatPropertiesANDROID',
--- 'AndroidHardwareBufferPropertiesANDROID',
--- 'AndroidHardwareBufferUsageANDROID', 'ExternalFormatANDROID',
--- 'ImportAndroidHardwareBufferInfoANDROID',
--- 'MemoryGetAndroidHardwareBufferInfoANDROID',
--- 'getAndroidHardwareBufferPropertiesANDROID',
--- 'getMemoryAndroidHardwareBufferANDROID'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_ARM_rasterization_order_attachment_access - device extension
 --
--- == VK_ARM_rasterization_order_attachment_access
+-- = VK_ARM_rasterization_order_attachment_access
 --
 -- [__Name String__]
 --     @VK_ARM_rasterization_order_attachment_access@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -124,7 +126,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs b/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs
--- a/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs
+++ b/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs
@@ -3,7 +3,7 @@
 --
 -- VK_ARM_render_pass_striped - device extension
 --
--- == VK_ARM_render_pass_striped
+-- = VK_ARM_render_pass_striped
 --
 -- [__Name String__]
 --     @VK_ARM_render_pass_striped@
@@ -21,9 +21,16 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -115,10 +122,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRenderPassStripedFeaturesARM',
--- 'PhysicalDeviceRenderPassStripedPropertiesARM',
--- 'RenderPassStripeBeginInfoARM', 'RenderPassStripeInfoARM',
--- 'RenderPassStripeSubmitInfoARM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -475,6 +479,13 @@
 -- render pass instance that has multiview enabled, the stripe includes all
 -- views in the view mask. In a render pass instance with @layerCount@
 -- greater than 1, the stripe includes all layers.
+--
+-- Render pass instances that specify the
+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_RESUMING_BIT' will not
+-- have any elements of @pStripeSemaphoreInfos@ mapped to them. Instead,
+-- for suspending and resuming render pass instances, this mapping is done
+-- for the first suspending render pass instance, and the per-stripe
+-- semaphores are only signaled for the last resuming render pass instance.
 --
 -- == Valid Usage
 --
diff --git a/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs-boot b/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs-boot
--- a/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs-boot
+++ b/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_ARM_render_pass_striped - device extension
 --
--- == VK_ARM_render_pass_striped
+-- = VK_ARM_render_pass_striped
 --
 -- [__Name String__]
 --     @VK_ARM_render_pass_striped@
@@ -21,9 +21,16 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -115,10 +122,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRenderPassStripedFeaturesARM',
--- 'PhysicalDeviceRenderPassStripedPropertiesARM',
--- 'RenderPassStripeBeginInfoARM', 'RenderPassStripeInfoARM',
--- 'RenderPassStripeSubmitInfoARM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_ARM_scheduling_controls.hs b/src/Vulkan/Extensions/VK_ARM_scheduling_controls.hs
--- a/src/Vulkan/Extensions/VK_ARM_scheduling_controls.hs
+++ b/src/Vulkan/Extensions/VK_ARM_scheduling_controls.hs
@@ -3,7 +3,7 @@
 --
 -- VK_ARM_scheduling_controls - device extension
 --
--- == VK_ARM_scheduling_controls
+-- = VK_ARM_scheduling_controls
 --
 -- [__Name String__]
 --     @VK_ARM_scheduling_controls@
@@ -50,7 +50,7 @@
 -- == Description
 --
 -- This extension exposes a collection of controls to modify the scheduling
--- behaviour of Arm Mali devices.
+-- behavior of Arm Mali devices.
 --
 -- == New Structures
 --
@@ -108,11 +108,7 @@
 --
 -- == See Also
 --
--- 'DeviceQueueShaderCoreControlCreateInfoARM',
--- 'PhysicalDeviceSchedulingControlsFeaturesARM',
--- 'PhysicalDeviceSchedulingControlsFlagBitsARM',
--- 'PhysicalDeviceSchedulingControlsFlagsARM',
--- 'PhysicalDeviceSchedulingControlsPropertiesARM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -190,7 +186,7 @@
     -- #VUID-VkDeviceQueueShaderCoreControlCreateInfoARM-shaderCoreCount-09399#
     -- @shaderCoreCount@ /must/ be greater than 0 and less than or equal to the
     -- total number of shader cores as reported via
-    -- 'Vulkan.Extensions.VK_ARM_shader_core_builtins.PhysicalDeviceShaderCoreBuiltinsPropertiesARM'::@shaderCoreCount@.
+    -- 'Vulkan.Extensions.VK_ARM_shader_core_builtins.PhysicalDeviceShaderCoreBuiltinsPropertiesARM'::@shaderCoreCount@
     shaderCoreCount :: Word32 }
   deriving (Typeable, Eq)
 #if defined(GENERIC_INSTANCES)
@@ -376,11 +372,12 @@
 --
 -- = See Also
 --
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_scheduling_controls VK_ARM_scheduling_controls>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_scheduling_controls VK_ARM_scheduling_controls>,
+-- 'PhysicalDeviceSchedulingControlsFlagsARM'
 newtype PhysicalDeviceSchedulingControlsFlagBitsARM = PhysicalDeviceSchedulingControlsFlagBitsARM Flags64
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
--- | 'PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM' indicates
+-- | 'PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM' specifies
 -- that a 'DeviceQueueShaderCoreControlCreateInfoARM' structure /may/ be
 -- included in the @pNext@ chain of a
 -- 'Vulkan.Core10.Device.DeviceQueueCreateInfo' or
diff --git a/src/Vulkan/Extensions/VK_ARM_scheduling_controls.hs-boot b/src/Vulkan/Extensions/VK_ARM_scheduling_controls.hs-boot
--- a/src/Vulkan/Extensions/VK_ARM_scheduling_controls.hs-boot
+++ b/src/Vulkan/Extensions/VK_ARM_scheduling_controls.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_ARM_scheduling_controls - device extension
 --
--- == VK_ARM_scheduling_controls
+-- = VK_ARM_scheduling_controls
 --
 -- [__Name String__]
 --     @VK_ARM_scheduling_controls@
@@ -50,7 +50,7 @@
 -- == Description
 --
 -- This extension exposes a collection of controls to modify the scheduling
--- behaviour of Arm Mali devices.
+-- behavior of Arm Mali devices.
 --
 -- == New Structures
 --
@@ -108,11 +108,7 @@
 --
 -- == See Also
 --
--- 'DeviceQueueShaderCoreControlCreateInfoARM',
--- 'PhysicalDeviceSchedulingControlsFeaturesARM',
--- 'PhysicalDeviceSchedulingControlsFlagBitsARM',
--- 'PhysicalDeviceSchedulingControlsFlagsARM',
--- 'PhysicalDeviceSchedulingControlsPropertiesARM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_ARM_shader_core_builtins - device extension
 --
--- == VK_ARM_shader_core_builtins
+-- = VK_ARM_shader_core_builtins
 --
 -- [__Name String__]
 --     @VK_ARM_shader_core_builtins@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -40,7 +42,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/arm/GLSL_ARM_shader_core_builtins.txt GL_ARM_shader_core_builtins>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/arm/GLSL_ARM_shader_core_builtins.txt GL_ARM_shader_core_builtins>
 --
 -- [__Contributors__]
 --
@@ -60,7 +62,7 @@
 -- capability.
 --
 -- These properties and built-ins can be used for debugging or performance
--- optimisation purposes. A typical optimisation example would be to use
+-- optimization purposes. A typical optimization example would be to use
 -- @CoreIDARM@ to select a per-shader-core instance of a data structure in
 -- algorithms that use atomics so as to reduce contention.
 --
@@ -121,8 +123,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderCoreBuiltinsFeaturesARM',
--- 'PhysicalDeviceShaderCoreBuiltinsPropertiesARM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_ARM_shader_core_builtins - device extension
 --
--- == VK_ARM_shader_core_builtins
+-- = VK_ARM_shader_core_builtins
 --
 -- [__Name String__]
 --     @VK_ARM_shader_core_builtins@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -40,7 +42,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/arm/GLSL_ARM_shader_core_builtins.txt GL_ARM_shader_core_builtins>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/arm/GLSL_ARM_shader_core_builtins.txt GL_ARM_shader_core_builtins>
 --
 -- [__Contributors__]
 --
@@ -60,7 +62,7 @@
 -- capability.
 --
 -- These properties and built-ins can be used for debugging or performance
--- optimisation purposes. A typical optimisation example would be to use
+-- optimization purposes. A typical optimization example would be to use
 -- @CoreIDARM@ to select a per-shader-core instance of a data structure in
 -- algorithms that use atomics so as to reduce contention.
 --
@@ -121,8 +123,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderCoreBuiltinsFeaturesARM',
--- 'PhysicalDeviceShaderCoreBuiltinsPropertiesARM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_ARM_shader_core_properties - device extension
 --
--- == VK_ARM_shader_core_properties
+-- = VK_ARM_shader_core_properties
 --
 -- [__Name String__]
 --     @VK_ARM_shader_core_properties@
@@ -21,7 +21,7 @@
 --     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -76,7 +76,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderCorePropertiesARM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_ARM_shader_core_properties - device extension
 --
--- == VK_ARM_shader_core_properties
+-- = VK_ARM_shader_core_properties
 --
 -- [__Name String__]
 --     @VK_ARM_shader_core_properties@
@@ -21,7 +21,7 @@
 --     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -76,7 +76,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderCorePropertiesARM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_4444_formats - device extension
 --
--- == VK_EXT_4444_formats
+-- = VK_EXT_4444_formats
 --
 -- [__Name String__]
 --     @VK_EXT_4444_formats@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -105,7 +105,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevice4444FormatsFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -175,8 +175,6 @@
 -- selectively enable these features.
 --
 -- == Valid Usage (Implicit)
---
--- Note
 --
 -- Although the formats defined by the @VK_EXT_4444_formats@ extension were
 -- promoted to Vulkan 1.3 as optional formats, the
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_4444_formats - device extension
 --
--- == VK_EXT_4444_formats
+-- = VK_EXT_4444_formats
 --
 -- [__Name String__]
 --     @VK_EXT_4444_formats@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -105,7 +105,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevice4444FormatsFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_acquire_drm_display - instance extension
 --
--- == VK_EXT_acquire_drm_display
+-- = VK_EXT_acquire_drm_display
 --
 -- [__Name String__]
 --     @VK_EXT_acquire_drm_display@
@@ -70,7 +70,7 @@
 --
 -- == See Also
 --
--- 'acquireDrmDisplayEXT', 'getDrmDisplayEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -137,14 +137,15 @@
 -- All permissions necessary to control the display are granted to the
 -- Vulkan instance associated with the provided @physicalDevice@ until the
 -- display is either released or the connector is unplugged. The provided
--- @drmFd@ must correspond to the one owned by the @physicalDevice@. If
--- not, the error code 'Vulkan.Core10.Enums.Result.ERROR_UNKNOWN' must be
+-- @drmFd@ /must/ correspond to the one owned by the @physicalDevice@. If
+-- not, the error code 'Vulkan.Core10.Enums.Result.ERROR_UNKNOWN' /must/ be
 -- returned. The DRM FD must have DRM master permissions. If any error is
--- encountered during the acquisition of the display, the call must return
--- the error code 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'.
+-- encountered during the acquisition of the display, the call /must/
+-- return the error code
+-- 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'.
 --
 -- The provided DRM fd should not be closed before the display is released,
--- attempting to do it may result in undefined behaviour.
+-- attempting to do it may result in undefined behavior.
 --
 -- == Return Codes
 --
@@ -204,16 +205,16 @@
 -- = Description
 --
 -- If there is no 'Vulkan.Extensions.Handles.DisplayKHR' corresponding to
--- the @connectorId@ on the @physicalDevice@, the returning @display@ must
--- be set to 'Vulkan.Core10.APIConstants.NULL_HANDLE'. The provided @drmFd@
--- must correspond to the one owned by the @physicalDevice@. If not, the
--- error code 'Vulkan.Core10.Enums.Result.ERROR_UNKNOWN' must be returned.
--- Master permissions are not required, because the file descriptor is just
--- used for information gathering purposes. The given @connectorId@ must be
--- a resource owned by the provided @drmFd@. If not, the error code
--- 'Vulkan.Core10.Enums.Result.ERROR_UNKNOWN' must be returned. If any
--- error is encountered during the identification of the display, the call
--- must return the error code
+-- the @connectorId@ on the @physicalDevice@, the returning @display@
+-- /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'. The provided @drmFd@
+-- /must/ correspond to the one owned by the @physicalDevice@. If not, the
+-- error code 'Vulkan.Core10.Enums.Result.ERROR_UNKNOWN' /must/ be
+-- returned. Master permissions are not required, because the file
+-- descriptor is just used for information gathering purposes. The given
+-- @connectorId@ /must/ be a resource owned by the provided @drmFd@. If
+-- not, the error code 'Vulkan.Core10.Enums.Result.ERROR_UNKNOWN' /must/ be
+-- returned. If any error is encountered during the identification of the
+-- display, the call /must/ return the error code
 -- 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'.
 --
 -- == Return Codes
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_acquire_xlib_display - instance extension
 --
--- == VK_EXT_acquire_xlib_display
+-- = VK_EXT_acquire_xlib_display
 --
 -- [__Name String__]
 --     @VK_EXT_acquire_xlib_display@
@@ -103,7 +103,7 @@
 --
 -- == See Also
 --
--- 'acquireXlibDisplayEXT', 'getRandROutputDisplayEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -181,8 +181,6 @@
 -- permission to access it has already been acquired by another entity, the
 -- call /must/ return the error code
 -- 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'.
---
--- Note
 --
 -- One example of when an X11 server loses access to a display is when it
 -- loses ownership of its virtual terminal.
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_acquire_xlib_display - instance extension
 --
--- == VK_EXT_acquire_xlib_display
+-- = VK_EXT_acquire_xlib_display
 --
 -- [__Name String__]
 --     @VK_EXT_acquire_xlib_display@
@@ -103,7 +103,7 @@
 --
 -- == See Also
 --
--- 'acquireXlibDisplayEXT', 'getRandROutputDisplayEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_astc_decode_mode - device extension
 --
--- == VK_EXT_astc_decode_mode
+-- = VK_EXT_astc_decode_mode
 --
 -- [__Name String__]
 --     @VK_EXT_astc_decode_mode@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -148,7 +148,7 @@
 --
 -- == See Also
 --
--- 'ImageViewASTCDecodeModeEXT', 'PhysicalDeviceASTCDecodeFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_astc_decode_mode - device extension
 --
--- == VK_EXT_astc_decode_mode
+-- = VK_EXT_astc_decode_mode
 --
 -- [__Name String__]
 --     @VK_EXT_astc_decode_mode@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -148,7 +148,7 @@
 --
 -- == See Also
 --
--- 'ImageViewASTCDecodeModeEXT', 'PhysicalDeviceASTCDecodeFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
--- a/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs
+++ b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_attachment_feedback_loop_dynamic_state - device extension
 --
--- == VK_EXT_attachment_feedback_loop_dynamic_state
+-- = VK_EXT_attachment_feedback_loop_dynamic_state
 --
 -- [__Name String__]
 --     @VK_EXT_attachment_feedback_loop_dynamic_state@
@@ -21,10 +21,20 @@
 --     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 Vulkan Version 1.1>
 --     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>
 --
+-- [__Special Uses__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>
+--
 -- [__Contact__]
 --
 --     -   Mike Blumenkrantz
@@ -92,8 +102,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT',
--- 'cmdSetAttachmentFeedbackLoopEnableEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
--- 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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_attachment_feedback_loop_dynamic_state - device extension
 --
--- == VK_EXT_attachment_feedback_loop_dynamic_state
+-- = VK_EXT_attachment_feedback_loop_dynamic_state
 --
 -- [__Name String__]
 --     @VK_EXT_attachment_feedback_loop_dynamic_state@
@@ -21,10 +21,20 @@
 --     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 Vulkan Version 1.1>
 --     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>
 --
+-- [__Special Uses__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>
+--
 -- [__Contact__]
 --
 --     -   Mike Blumenkrantz
@@ -92,8 +102,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT',
--- 'cmdSetAttachmentFeedbackLoopEnableEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_attachment_feedback_loop_layout - device extension
 --
--- == VK_EXT_attachment_feedback_loop_layout
+-- = VK_EXT_attachment_feedback_loop_layout
 --
 -- [__Name String__]
 --     @VK_EXT_attachment_feedback_loop_layout@
@@ -22,7 +22,15 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
+-- [__Special Uses__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>
+--
 -- [__Contact__]
 --
 --     -   Joshua Ashton
@@ -114,7 +122,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_attachment_feedback_loop_layout - device extension
 --
--- == VK_EXT_attachment_feedback_loop_layout
+-- = VK_EXT_attachment_feedback_loop_layout
 --
 -- [__Name String__]
 --     @VK_EXT_attachment_feedback_loop_layout@
@@ -22,7 +22,15 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
+-- [__Special Uses__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>
+--
 -- [__Contact__]
 --
 --     -   Joshua Ashton
@@ -114,7 +122,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_blend_operation_advanced - device extension
 --
--- == VK_EXT_blend_operation_advanced
+-- = VK_EXT_blend_operation_advanced
 --
 -- [__Name String__]
 --     @VK_EXT_blend_operation_advanced@
@@ -18,12 +18,12 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -273,9 +273,7 @@
 --
 -- == See Also
 --
--- 'BlendOverlapEXT', 'PhysicalDeviceBlendOperationAdvancedFeaturesEXT',
--- 'PhysicalDeviceBlendOperationAdvancedPropertiesEXT',
--- 'PipelineColorBlendAdvancedStateCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_blend_operation_advanced - device extension
 --
--- == VK_EXT_blend_operation_advanced
+-- = VK_EXT_blend_operation_advanced
 --
 -- [__Name String__]
 --     @VK_EXT_blend_operation_advanced@
@@ -18,12 +18,12 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -273,9 +273,7 @@
 --
 -- == See Also
 --
--- 'BlendOverlapEXT', 'PhysicalDeviceBlendOperationAdvancedFeaturesEXT',
--- 'PhysicalDeviceBlendOperationAdvancedPropertiesEXT',
--- 'PipelineColorBlendAdvancedStateCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_border_color_swizzle - device extension
 --
--- == VK_EXT_border_color_swizzle
+-- = VK_EXT_border_color_swizzle
 --
 -- [__Name String__]
 --     @VK_EXT_border_color_swizzle@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
@@ -108,8 +108,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceBorderColorSwizzleFeaturesEXT',
--- 'SamplerBorderColorComponentMappingCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_border_color_swizzle - device extension
 --
--- == VK_EXT_border_color_swizzle
+-- = VK_EXT_border_color_swizzle
 --
 -- [__Name String__]
 --     @VK_EXT_border_color_swizzle@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
@@ -108,8 +108,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceBorderColorSwizzleFeaturesEXT',
--- 'SamplerBorderColorComponentMappingCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_buffer_device_address - device extension
 --
--- == VK_EXT_buffer_device_address
+-- = VK_EXT_buffer_device_address
 --
 -- [__Name String__]
 --     @VK_EXT_buffer_device_address@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -52,9 +54,9 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference.txt GLSL_EXT_buffer_reference>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_buffer_reference.txt GLSL_EXT_buffer_reference>
 --         and
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference_uvec2.txt GLSL_EXT_buffer_reference_uvec2>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_buffer_reference_uvec2.txt GLSL_EXT_buffer_reference_uvec2>
 --
 -- [__Contributors__]
 --
@@ -73,7 +75,7 @@
 -- This extension allows the application to query a 64-bit buffer device
 -- address value for a buffer, which can be used to access the buffer
 -- memory via the @PhysicalStorageBufferEXT@ storage class in the
--- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference.txt GL_EXT_buffer_reference>
+-- <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_buffer_reference.txt GL_EXT_buffer_reference>
 -- GLSL extension and
 -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_physical_storage_buffer.html SPV_EXT_physical_storage_buffer>
 -- SPIR-V extension.
@@ -159,10 +161,7 @@
 --
 -- == See Also
 --
--- 'BufferDeviceAddressCreateInfoEXT', 'BufferDeviceAddressInfoEXT',
--- 'PhysicalDeviceBufferAddressFeaturesEXT',
--- 'PhysicalDeviceBufferDeviceAddressFeaturesEXT',
--- 'getBufferDeviceAddressEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -262,8 +261,6 @@
 -- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to
 -- selectively enable these features.
 --
--- Note
---
 -- The 'PhysicalDeviceBufferDeviceAddressFeaturesEXT' structure has the
 -- same members as the
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures'
@@ -293,10 +290,11 @@
     bufferDeviceAddressCaptureReplay :: Bool
   , -- | #features-bufferDeviceAddressMultiDeviceEXT#
     -- @bufferDeviceAddressMultiDevice@ indicates that the implementation
-    -- supports the @bufferDeviceAddress@ feature for logical devices created
-    -- with multiple physical devices. If this feature is not supported, buffer
-    -- addresses /must/ not be queried on a logical device created with more
-    -- than one physical device.
+    -- supports the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressEXT bufferDeviceAddress>
+    -- feature for logical devices created with multiple physical devices. If
+    -- this feature is not supported, buffer addresses /must/ not be queried on
+    -- a logical device created with more than one physical device.
     bufferDeviceAddressMultiDevice :: Bool
   }
   deriving (Typeable, Eq)
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_buffer_device_address - device extension
 --
--- == VK_EXT_buffer_device_address
+-- = VK_EXT_buffer_device_address
 --
 -- [__Name String__]
 --     @VK_EXT_buffer_device_address@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -52,9 +54,9 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference.txt GLSL_EXT_buffer_reference>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_buffer_reference.txt GLSL_EXT_buffer_reference>
 --         and
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference_uvec2.txt GLSL_EXT_buffer_reference_uvec2>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_buffer_reference_uvec2.txt GLSL_EXT_buffer_reference_uvec2>
 --
 -- [__Contributors__]
 --
@@ -73,7 +75,7 @@
 -- This extension allows the application to query a 64-bit buffer device
 -- address value for a buffer, which can be used to access the buffer
 -- memory via the @PhysicalStorageBufferEXT@ storage class in the
--- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference.txt GL_EXT_buffer_reference>
+-- <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_buffer_reference.txt GL_EXT_buffer_reference>
 -- GLSL extension and
 -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_physical_storage_buffer.html SPV_EXT_physical_storage_buffer>
 -- SPIR-V extension.
@@ -159,10 +161,7 @@
 --
 -- == See Also
 --
--- 'BufferDeviceAddressCreateInfoEXT', 'BufferDeviceAddressInfoEXT',
--- 'PhysicalDeviceBufferAddressFeaturesEXT',
--- 'PhysicalDeviceBufferDeviceAddressFeaturesEXT',
--- 'getBufferDeviceAddressEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_calibrated_timestamps - device extension
 --
--- == VK_EXT_calibrated_timestamps
+-- = VK_EXT_calibrated_timestamps
 --
 -- [__Name String__]
 --     @VK_EXT_calibrated_timestamps@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -120,9 +120,7 @@
 --
 -- == See Also
 --
--- 'CalibratedTimestampInfoEXT', 'TimeDomainEXT',
--- 'getCalibratedTimestampsEXT',
--- 'getPhysicalDeviceCalibrateableTimeDomainsEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_color_write_enable - device extension
 --
--- == VK_EXT_color_write_enable
+-- = VK_EXT_color_write_enable
 --
 -- [__Name String__]
 --     @VK_EXT_color_write_enable@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -103,8 +103,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceColorWriteEnableFeaturesEXT',
--- 'PipelineColorWriteCreateInfoEXT', 'cmdSetColorWriteEnableEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -362,9 +361,8 @@
 --
 -- If the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
--- feature is not enabled on the device, all
--- 'Vulkan.Core10.FundamentalTypes.Bool32' elements in the
--- @pColorWriteEnables@ array /must/ be
+-- feature is not enabled, all 'Vulkan.Core10.FundamentalTypes.Bool32'
+-- elements in the @pColorWriteEnables@ array /must/ be
 -- 'Vulkan.Core10.FundamentalTypes.TRUE'.
 --
 -- Color Write Enable interacts with the
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_color_write_enable - device extension
 --
--- == VK_EXT_color_write_enable
+-- = VK_EXT_color_write_enable
 --
 -- [__Name String__]
 --     @VK_EXT_color_write_enable@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -103,8 +103,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceColorWriteEnableFeaturesEXT',
--- 'PipelineColorWriteCreateInfoEXT', 'cmdSetColorWriteEnableEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_conditional_rendering - device extension
 --
--- == VK_EXT_conditional_rendering
+-- = VK_EXT_conditional_rendering
 --
 -- [__Name String__]
 --     @VK_EXT_conditional_rendering@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -149,11 +151,7 @@
 --
 -- == See Also
 --
--- 'CommandBufferInheritanceConditionalRenderingInfoEXT',
--- 'ConditionalRenderingBeginInfoEXT', 'ConditionalRenderingFlagBitsEXT',
--- 'ConditionalRenderingFlagsEXT',
--- 'PhysicalDeviceConditionalRenderingFeaturesEXT',
--- 'cmdBeginConditionalRenderingEXT', 'cmdEndConditionalRenderingEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_conditional_rendering - device extension
 --
--- == VK_EXT_conditional_rendering
+-- = VK_EXT_conditional_rendering
 --
 -- [__Name String__]
 --     @VK_EXT_conditional_rendering@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -149,11 +151,7 @@
 --
 -- == See Also
 --
--- 'CommandBufferInheritanceConditionalRenderingInfoEXT',
--- 'ConditionalRenderingBeginInfoEXT', 'ConditionalRenderingFlagBitsEXT',
--- 'ConditionalRenderingFlagsEXT',
--- 'PhysicalDeviceConditionalRenderingFeaturesEXT',
--- 'cmdBeginConditionalRenderingEXT', 'cmdEndConditionalRenderingEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_conservative_rasterization - device extension
 --
--- == VK_EXT_conservative_rasterization
+-- = VK_EXT_conservative_rasterization
 --
 -- [__Name String__]
 --     @VK_EXT_conservative_rasterization@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -153,10 +153,7 @@
 --
 -- == See Also
 --
--- 'ConservativeRasterizationModeEXT',
--- 'PhysicalDeviceConservativeRasterizationPropertiesEXT',
--- 'PipelineRasterizationConservativeStateCreateFlagsEXT',
--- 'PipelineRasterizationConservativeStateCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -399,7 +396,7 @@
 --
 -- If this structure is not included in the @pNext@ chain,
 -- @conservativeRasterizationMode@ is considered to be
--- 'CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT', and and conservative
+-- 'CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT', and conservative
 -- rasterization is disabled.
 --
 -- Polygon rasterization /can/ be made conservative by setting
@@ -408,8 +405,6 @@
 -- 'CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT' in
 -- 'PipelineRasterizationConservativeStateCreateInfoEXT'.
 --
--- Note
---
 -- If
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>
 -- is supported, conservative rasterization can be applied to line and
@@ -509,6 +504,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conservative_rasterization VK_EXT_conservative_rasterization>,
+-- 'Vulkan.Core10.FundamentalTypes.Flags',
 -- 'PipelineRasterizationConservativeStateCreateInfoEXT'
 newtype PipelineRasterizationConservativeStateCreateFlagsEXT = PipelineRasterizationConservativeStateCreateFlagsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_conservative_rasterization - device extension
 --
--- == VK_EXT_conservative_rasterization
+-- = VK_EXT_conservative_rasterization
 --
 -- [__Name String__]
 --     @VK_EXT_conservative_rasterization@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -153,10 +153,7 @@
 --
 -- == See Also
 --
--- 'ConservativeRasterizationModeEXT',
--- 'PhysicalDeviceConservativeRasterizationPropertiesEXT',
--- 'PipelineRasterizationConservativeStateCreateFlagsEXT',
--- 'PipelineRasterizationConservativeStateCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_custom_border_color - device extension
 --
--- == VK_EXT_custom_border_color
+-- = VK_EXT_custom_border_color
 --
 -- [__Name String__]
 --     @VK_EXT_custom_border_color@
@@ -18,12 +18,12 @@
 --     12
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Special Uses__]
 --
@@ -243,9 +243,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceCustomBorderColorFeaturesEXT',
--- 'PhysicalDeviceCustomBorderColorPropertiesEXT',
--- 'SamplerCustomBorderColorCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -297,8 +295,6 @@
 -- border color
 --
 -- = Description
---
--- Note
 --
 -- If @format@ is a depth\/stencil format, the aspect is determined by the
 -- value of 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@borderColor@. If
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_custom_border_color - device extension
 --
--- == VK_EXT_custom_border_color
+-- = VK_EXT_custom_border_color
 --
 -- [__Name String__]
 --     @VK_EXT_custom_border_color@
@@ -18,12 +18,12 @@
 --     12
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Special Uses__]
 --
@@ -243,9 +243,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceCustomBorderColorFeaturesEXT',
--- 'PhysicalDeviceCustomBorderColorPropertiesEXT',
--- 'SamplerCustomBorderColorCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_debug_marker - device extension
 --
--- == VK_EXT_debug_marker
+-- = VK_EXT_debug_marker
 --
 -- [__Name String__]
 --     @VK_EXT_debug_marker@
@@ -135,7 +135,7 @@
 -- __Example 2__
 --
 -- Annotating regions of a workload with naming information so that offline
--- analysis tools can display a more usable visualisation of the commands
+-- analysis tools can display a more usable visualization of the commands
 -- submitted.
 --
 -- >     extern VkDevice device;
@@ -213,7 +213,7 @@
 --
 -- __RESOLVED__: Yes. The functions have been expanded to take an optional
 -- color which can be used at will by implementations consuming the command
--- buffer annotations in their visualisation.
+-- buffer annotations in their visualization.
 --
 -- 3) Should the functions added in this extension accept an extensible
 -- structure as their parameter for a more flexible API, as opposed to
@@ -240,7 +240,7 @@
 --
 -- -   Revision 3, 2016-04-23 (Baldur Karlsson)
 --
---     -   Reorganise spec layout to closer match desired organisation
+--     -   Reorganize spec layout to closer match desired organization
 --
 --     -   Added optional color to markers (both regions and inserted
 --         labels)
@@ -260,12 +260,7 @@
 --
 -- == See Also
 --
--- 'DebugMarkerMarkerInfoEXT', 'DebugMarkerObjectNameInfoEXT',
--- 'DebugMarkerObjectTagInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT',
--- 'cmdDebugMarkerBeginEXT', 'cmdDebugMarkerEndEXT',
--- 'cmdDebugMarkerInsertEXT', 'debugMarkerSetObjectNameEXT',
--- 'debugMarkerSetObjectTagEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -364,7 +359,8 @@
   "dynamic" mkVkDebugMarkerSetObjectNameEXT
   :: FunPtr (Ptr Device_T -> Ptr DebugMarkerObjectNameInfoEXT -> IO Result) -> Ptr Device_T -> Ptr DebugMarkerObjectNameInfoEXT -> IO Result
 
--- | vkDebugMarkerSetObjectNameEXT - Give a user-friendly name to an object
+-- | vkDebugMarkerSetObjectNameEXT - Give an application-defined name to an
+-- object
 --
 -- == Valid Usage (Implicit)
 --
@@ -711,7 +707,7 @@
 --
 -- Applications /may/ change the name associated with an object simply by
 -- calling 'debugMarkerSetObjectNameEXT' again with a new string. To remove
--- a previously set name, @pObjectName@ /should/ be set to an empty string.
+-- a previously set name, @pObjectName@ /should/ be an empty string.
 --
 -- == Valid Usage (Implicit)
 --
@@ -919,7 +915,7 @@
   , -- | @color@ is an /optional/ RGBA color value that can be associated with
     -- the marker. A particular implementation /may/ choose to ignore this
     -- color value. The values contain RGBA values in order, in the range 0.0
-    -- to 1.0. If all elements in @color@ are set to 0.0 then it is ignored.
+    -- to 1.0. If all elements in @color@ are 0.0, then it is ignored.
     color :: (Float, Float, Float, Float)
   }
   deriving (Typeable)
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_debug_marker - device extension
 --
--- == VK_EXT_debug_marker
+-- = VK_EXT_debug_marker
 --
 -- [__Name String__]
 --     @VK_EXT_debug_marker@
@@ -135,7 +135,7 @@
 -- __Example 2__
 --
 -- Annotating regions of a workload with naming information so that offline
--- analysis tools can display a more usable visualisation of the commands
+-- analysis tools can display a more usable visualization of the commands
 -- submitted.
 --
 -- >     extern VkDevice device;
@@ -213,7 +213,7 @@
 --
 -- __RESOLVED__: Yes. The functions have been expanded to take an optional
 -- color which can be used at will by implementations consuming the command
--- buffer annotations in their visualisation.
+-- buffer annotations in their visualization.
 --
 -- 3) Should the functions added in this extension accept an extensible
 -- structure as their parameter for a more flexible API, as opposed to
@@ -240,7 +240,7 @@
 --
 -- -   Revision 3, 2016-04-23 (Baldur Karlsson)
 --
---     -   Reorganise spec layout to closer match desired organisation
+--     -   Reorganize spec layout to closer match desired organization
 --
 --     -   Added optional color to markers (both regions and inserted
 --         labels)
@@ -260,12 +260,7 @@
 --
 -- == See Also
 --
--- 'DebugMarkerMarkerInfoEXT', 'DebugMarkerObjectNameInfoEXT',
--- 'DebugMarkerObjectTagInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT',
--- 'cmdDebugMarkerBeginEXT', 'cmdDebugMarkerEndEXT',
--- 'cmdDebugMarkerInsertEXT', 'debugMarkerSetObjectNameEXT',
--- 'debugMarkerSetObjectTagEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_debug_report - instance extension
 --
--- == VK_EXT_debug_report
+-- = VK_EXT_debug_report
 --
 -- [__Name String__]
 --     @VK_EXT_debug_report@
@@ -123,7 +123,7 @@
 --     -   'STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT'
 --
 -- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   Extending 'DebugReportObjectTypeEXT':
@@ -137,7 +137,7 @@
 -- @VK_EXT_debug_report@ allows an application to register multiple
 -- callbacks with the validation layers. Some callbacks may log the
 -- information to a file, others may cause a debug break point or other
--- application defined behavior. An application /can/ register callbacks
+-- application-defined behavior. An application /can/ register callbacks
 -- even when no validation layers are enabled, but they will only be called
 -- for loader and, if implemented, driver events.
 --
@@ -192,8 +192,6 @@
 -- >     vkDestroyDebugReportCallbackEXT(instance, cb2);
 -- >     vkDestroyDebugReportCallbackEXT(instance, cb3);
 --
--- Note
---
 -- In the initial release of the @VK_EXT_debug_report@ extension, the token
 -- 'STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT' was used. Starting in
 -- version 2 of the extension branch,
@@ -201,8 +199,6 @@
 -- is used instead for consistency with Vulkan naming rules. The older enum
 -- is still available for backwards compatibility.
 --
--- Note
---
 -- In the initial release of the @VK_EXT_debug_report@ extension, the token
 -- 'DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT' was used. Starting in
 -- version 8 of the extension branch,
@@ -263,8 +259,8 @@
 -- > reinterpret_cast<uint64_t &>(dispatchableHandle)
 -- > (uint64_t)(nondispatchableHandle)
 --
--- + This does require that the app treat dispatchable and nondispatchable
--- handles differently.
+-- + This does require that the application treat dispatchable and
+-- nondispatchable handles differently.
 --
 -- == Version History
 --
@@ -321,11 +317,7 @@
 --
 -- == See Also
 --
--- 'PFN_vkDebugReportCallbackEXT', 'DebugReportCallbackCreateInfoEXT',
--- 'Vulkan.Extensions.Handles.DebugReportCallbackEXT',
--- 'DebugReportFlagBitsEXT', 'DebugReportFlagsEXT',
--- 'DebugReportObjectTypeEXT', 'createDebugReportCallbackEXT',
--- 'debugReportMessageEXT', 'destroyDebugReportCallbackEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -714,9 +706,9 @@
                          -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' if there is no object
                          -- associated with the event.
                          ("object" ::: Word64)
-                      -> -- | @location@ is an application defined value.
+                      -> -- | @location@ is an application-defined value.
                          ("location" ::: Word64)
-                      -> -- | @messageCode@ is an application defined value.
+                      -> -- | @messageCode@ is an application-defined value.
                          ("messageCode" ::: Int32)
                       -> -- | @pLayerPrefix@ is the abbreviation of the component making this
                          -- event\/message.
@@ -873,7 +865,7 @@
 pattern DEBUG_REPORT_INFORMATION_BIT_EXT = DebugReportFlagBitsEXT 0x00000001
 
 -- | 'DEBUG_REPORT_WARNING_BIT_EXT' specifies use of Vulkan that /may/ expose
--- an app bug. Such cases may not be immediately harmful, such as a
+-- an application bug. Such cases may not be immediately harmful, such as a
 -- fragment shader outputting to a location with no attachment. Other cases
 -- /may/ point to behavior that is almost certainly bad when unintended
 -- such as using an image whose memory has not been filled. In general if
@@ -1020,8 +1012,6 @@
 --
 -- 'DebugReportObjectTypeEXT' and Vulkan Handle Relationship
 --
--- Note
---
 -- The primary expected use of
 -- 'Vulkan.Core10.Enums.Result.ERROR_VALIDATION_FAILED_EXT' is for
 -- validation layer testing. It is not expected that an application would
@@ -1029,6 +1019,7 @@
 --
 -- = See Also
 --
+-- 'PFN_vkDebugReportCallbackEXT',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_marker VK_EXT_debug_marker>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>,
 -- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerObjectNameInfoEXT',
@@ -1421,7 +1412,8 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>,
--- 'DebugReportCallbackCreateInfoEXT'
+-- 'DebugReportCallbackCreateInfoEXT', 'DebugReportFlagsEXT',
+-- 'DebugReportObjectTypeEXT'
 type PFN_vkDebugReportCallbackEXT = FunPtr FN_vkDebugReportCallbackEXT
 
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_debug_report - instance extension
 --
--- == VK_EXT_debug_report
+-- = VK_EXT_debug_report
 --
 -- [__Name String__]
 --     @VK_EXT_debug_report@
@@ -123,7 +123,7 @@
 --     -   'STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT'
 --
 -- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   Extending 'DebugReportObjectTypeEXT':
@@ -137,7 +137,7 @@
 -- @VK_EXT_debug_report@ allows an application to register multiple
 -- callbacks with the validation layers. Some callbacks may log the
 -- information to a file, others may cause a debug break point or other
--- application defined behavior. An application /can/ register callbacks
+-- application-defined behavior. An application /can/ register callbacks
 -- even when no validation layers are enabled, but they will only be called
 -- for loader and, if implemented, driver events.
 --
@@ -192,8 +192,6 @@
 -- >     vkDestroyDebugReportCallbackEXT(instance, cb2);
 -- >     vkDestroyDebugReportCallbackEXT(instance, cb3);
 --
--- Note
---
 -- In the initial release of the @VK_EXT_debug_report@ extension, the token
 -- 'STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT' was used. Starting in
 -- version 2 of the extension branch,
@@ -201,8 +199,6 @@
 -- is used instead for consistency with Vulkan naming rules. The older enum
 -- is still available for backwards compatibility.
 --
--- Note
---
 -- In the initial release of the @VK_EXT_debug_report@ extension, the token
 -- 'DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT' was used. Starting in
 -- version 8 of the extension branch,
@@ -263,8 +259,8 @@
 -- > reinterpret_cast<uint64_t &>(dispatchableHandle)
 -- > (uint64_t)(nondispatchableHandle)
 --
--- + This does require that the app treat dispatchable and nondispatchable
--- handles differently.
+-- + This does require that the application treat dispatchable and
+-- nondispatchable handles differently.
 --
 -- == Version History
 --
@@ -321,11 +317,7 @@
 --
 -- == See Also
 --
--- 'PFN_vkDebugReportCallbackEXT', 'DebugReportCallbackCreateInfoEXT',
--- 'Vulkan.Extensions.Handles.DebugReportCallbackEXT',
--- 'DebugReportFlagBitsEXT', 'DebugReportFlagsEXT',
--- 'DebugReportObjectTypeEXT', 'createDebugReportCallbackEXT',
--- 'debugReportMessageEXT', 'destroyDebugReportCallbackEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_debug_utils - instance extension
 --
--- == VK_EXT_debug_utils
+-- = VK_EXT_debug_utils
 --
 -- [__Name String__]
 --     @VK_EXT_debug_utils@
@@ -18,7 +18,7 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     None
@@ -212,7 +212,7 @@
 -- @VK_EXT_debug_utils@ allows an application to register multiple
 -- callbacks with any Vulkan component wishing to report debug information.
 -- Some callbacks may log the information to a file, others may cause a
--- debug break point or other application defined behavior. An application
+-- debug break point or other application-defined behavior. An application
 -- /can/ register callbacks even when no validation layers are enabled, but
 -- they will only be called for loader and, if implemented, driver events.
 --
@@ -468,20 +468,7 @@
 --
 -- == See Also
 --
--- 'PFN_vkDebugUtilsMessengerCallbackEXT', 'DebugUtilsLabelEXT',
--- 'DebugUtilsMessageSeverityFlagBitsEXT',
--- 'DebugUtilsMessageSeverityFlagsEXT', 'DebugUtilsMessageTypeFlagBitsEXT',
--- 'DebugUtilsMessageTypeFlagsEXT', 'DebugUtilsMessengerCallbackDataEXT',
--- 'DebugUtilsMessengerCallbackDataFlagsEXT',
--- 'DebugUtilsMessengerCreateFlagsEXT', 'DebugUtilsMessengerCreateInfoEXT',
--- 'Vulkan.Extensions.Handles.DebugUtilsMessengerEXT',
--- 'DebugUtilsObjectNameInfoEXT', 'DebugUtilsObjectTagInfoEXT',
--- 'cmdBeginDebugUtilsLabelEXT', 'cmdEndDebugUtilsLabelEXT',
--- 'cmdInsertDebugUtilsLabelEXT', 'createDebugUtilsMessengerEXT',
--- 'destroyDebugUtilsMessengerEXT', 'queueBeginDebugUtilsLabelEXT',
--- 'queueEndDebugUtilsLabelEXT', 'queueInsertDebugUtilsLabelEXT',
--- 'setDebugUtilsObjectNameEXT', 'setDebugUtilsObjectTagEXT',
--- 'submitDebugUtilsMessageEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -663,7 +650,8 @@
   "dynamic" mkVkSetDebugUtilsObjectNameEXT
   :: FunPtr (Ptr Device_T -> Ptr DebugUtilsObjectNameInfoEXT -> IO Result) -> Ptr Device_T -> Ptr DebugUtilsObjectNameInfoEXT -> IO Result
 
--- | vkSetDebugUtilsObjectNameEXT - Give a user-friendly name to an object
+-- | vkSetDebugUtilsObjectNameEXT - Give an application-defined name to an
+-- object
 --
 -- == Valid Usage
 --
@@ -1723,7 +1711,7 @@
   , -- | @color@ is an optional RGBA color value that can be associated with the
     -- label. A particular implementation /may/ choose to ignore this color
     -- value. The values contain RGBA values in order, in the range 0.0 to 1.0.
-    -- If all elements in @color@ are set to 0.0 then it is ignored.
+    -- If all elements in @color@ are 0.0, then it is ignored.
     color :: (Float, Float, Float, Float)
   }
   deriving (Typeable)
@@ -1927,8 +1915,6 @@
 --
 -- = Description
 --
--- Note
---
 -- This structure should only be considered valid during the lifetime of
 -- the triggered callback.
 --
@@ -1939,8 +1925,6 @@
 -- @pCmdBufLabels@ will be the first defined (and therefore the oldest)
 -- while the last label in each list will be the most recent.
 --
--- Note
---
 -- @pQueueLabels@ will only be non-@NULL@ if one of the objects in
 -- @pObjects@ can be related directly to a defined
 -- 'Vulkan.Core10.Handles.Queue' which has had one or more labels
@@ -1998,6 +1982,7 @@
 --
 -- = See Also
 --
+-- 'PFN_vkDebugUtilsMessengerCallbackEXT',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils>,
 -- 'DebugUtilsLabelEXT', 'DebugUtilsMessengerCallbackDataFlagsEXT',
 -- 'DebugUtilsObjectNameInfoEXT',
@@ -2148,7 +2133,8 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils>,
--- 'DebugUtilsMessengerCreateInfoEXT'
+-- 'DebugUtilsMessengerCreateInfoEXT',
+-- 'Vulkan.Core10.FundamentalTypes.Flags'
 newtype DebugUtilsMessengerCreateFlagsEXT = DebugUtilsMessengerCreateFlagsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
@@ -2188,7 +2174,8 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils>,
--- 'DebugUtilsMessengerCallbackDataEXT'
+-- 'DebugUtilsMessengerCallbackDataEXT',
+-- 'Vulkan.Core10.FundamentalTypes.Flags'
 newtype DebugUtilsMessengerCallbackDataFlagsEXT = DebugUtilsMessengerCallbackDataFlagsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
@@ -2225,8 +2212,6 @@
 --
 -- = Description
 --
--- Note
---
 -- The values of 'DebugUtilsMessageSeverityFlagBitsEXT' are sorted based on
 -- severity. The higher the flag value, the more severe the message. This
 -- allows for simple boolean operation comparisons when looking at
@@ -2243,6 +2228,7 @@
 --
 -- = See Also
 --
+-- 'PFN_vkDebugUtilsMessengerCallbackEXT',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils>,
 -- 'DebugUtilsMessageSeverityFlagsEXT', 'submitDebugUtilsMessageEXT'
 newtype DebugUtilsMessageSeverityFlagBitsEXT = DebugUtilsMessageSeverityFlagBitsEXT Flags
@@ -2259,12 +2245,12 @@
 pattern DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = DebugUtilsMessageSeverityFlagBitsEXT 0x00000010
 
 -- | 'DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT' specifies use of Vulkan
--- that /may/ expose an app bug. Such cases may not be immediately harmful,
--- such as a fragment shader outputting to a location with no attachment.
--- Other cases /may/ point to behavior that is almost certainly bad when
--- unintended such as using an image whose memory has not been filled. In
--- general if you see a warning but you know that the behavior is
--- intended\/desired, then simply ignore the warning.
+-- that /may/ expose an application bug. Such cases may not be immediately
+-- harmful, such as a fragment shader outputting to a location with no
+-- attachment. Other cases /may/ point to behavior that is almost certainly
+-- bad when unintended such as using an image whose memory has not been
+-- filled. In general if you see a warning but you know that the behavior
+-- is intended\/desired, then simply ignore the warning.
 pattern DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = DebugUtilsMessageSeverityFlagBitsEXT 0x00000100
 
 -- | 'DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT' specifies that the
@@ -2412,7 +2398,8 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils>,
--- 'DebugUtilsMessengerCreateInfoEXT'
+-- 'DebugUtilsMessageSeverityFlagBitsEXT', 'DebugUtilsMessageTypeFlagsEXT',
+-- 'DebugUtilsMessengerCallbackDataEXT', 'DebugUtilsMessengerCreateInfoEXT'
 type PFN_vkDebugUtilsMessengerCallbackEXT = FunPtr FN_vkDebugUtilsMessengerCallbackEXT
 
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_debug_utils - instance extension
 --
--- == VK_EXT_debug_utils
+-- = VK_EXT_debug_utils
 --
 -- [__Name String__]
 --     @VK_EXT_debug_utils@
@@ -18,7 +18,7 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     None
@@ -212,7 +212,7 @@
 -- @VK_EXT_debug_utils@ allows an application to register multiple
 -- callbacks with any Vulkan component wishing to report debug information.
 -- Some callbacks may log the information to a file, others may cause a
--- debug break point or other application defined behavior. An application
+-- debug break point or other application-defined behavior. An application
 -- /can/ register callbacks even when no validation layers are enabled, but
 -- they will only be called for loader and, if implemented, driver events.
 --
@@ -468,20 +468,7 @@
 --
 -- == See Also
 --
--- 'PFN_vkDebugUtilsMessengerCallbackEXT', 'DebugUtilsLabelEXT',
--- 'DebugUtilsMessageSeverityFlagBitsEXT',
--- 'DebugUtilsMessageSeverityFlagsEXT', 'DebugUtilsMessageTypeFlagBitsEXT',
--- 'DebugUtilsMessageTypeFlagsEXT', 'DebugUtilsMessengerCallbackDataEXT',
--- 'DebugUtilsMessengerCallbackDataFlagsEXT',
--- 'DebugUtilsMessengerCreateFlagsEXT', 'DebugUtilsMessengerCreateInfoEXT',
--- 'Vulkan.Extensions.Handles.DebugUtilsMessengerEXT',
--- 'DebugUtilsObjectNameInfoEXT', 'DebugUtilsObjectTagInfoEXT',
--- 'cmdBeginDebugUtilsLabelEXT', 'cmdEndDebugUtilsLabelEXT',
--- 'cmdInsertDebugUtilsLabelEXT', 'createDebugUtilsMessengerEXT',
--- 'destroyDebugUtilsMessengerEXT', 'queueBeginDebugUtilsLabelEXT',
--- 'queueEndDebugUtilsLabelEXT', 'queueInsertDebugUtilsLabelEXT',
--- 'setDebugUtilsObjectNameEXT', 'setDebugUtilsObjectTagEXT',
--- 'submitDebugUtilsMessageEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs b/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs
--- a/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs
+++ b/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_depth_bias_control - device extension
 --
--- == VK_EXT_depth_bias_control
+-- = VK_EXT_depth_bias_control
 --
 -- [__Name String__]
 --     @VK_EXT_depth_bias_control@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -123,9 +125,7 @@
 --
 -- == See Also
 --
--- 'DepthBiasInfoEXT', 'DepthBiasRepresentationEXT',
--- 'DepthBiasRepresentationInfoEXT',
--- 'PhysicalDeviceDepthBiasControlFeaturesEXT', 'cmdSetDepthBias2EXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs-boot b/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_depth_bias_control - device extension
 --
--- == VK_EXT_depth_bias_control
+-- = VK_EXT_depth_bias_control
 --
 -- [__Name String__]
 --     @VK_EXT_depth_bias_control@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -123,9 +125,7 @@
 --
 -- == See Also
 --
--- 'DepthBiasInfoEXT', 'DepthBiasRepresentationEXT',
--- 'DepthBiasRepresentationInfoEXT',
--- 'PhysicalDeviceDepthBiasControlFeaturesEXT', 'cmdSetDepthBias2EXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clamp_control.hs b/src/Vulkan/Extensions/VK_EXT_depth_clamp_control.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_depth_clamp_control.hs
@@ -0,0 +1,614 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_depth_clamp_control - device extension
+--
+-- = VK_EXT_depth_clamp_control
+--
+-- [__Name String__]
+--     @VK_EXT_depth_clamp_control@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     583
+--
+-- [__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 Vulkan Version 1.1>
+--
+-- [__Contact__]
+--
+--     -   Jules Blok
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_depth_clamp_control] @jules%0A*Here describe the issue or question you have about the VK_EXT_depth_clamp_control extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_depth_clamp_control.adoc VK_EXT_depth_clamp_control>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-07-15
+--
+-- [__Contributors__]
+--
+--     -   Jules Blok, Independent
+--
+-- == Description
+--
+-- This extension allows the application to control the viewport depth
+-- clamp range separately from the viewport @minDepth@ and @maxDepth@. This
+-- gives the ability for the application to restrict depth values to an
+-- application-defined range rather than the viewport depth range or the
+-- range defined in the
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clamp_zero_one VK_EXT_depth_clamp_zero_one>
+-- extension.
+--
+-- It can be used to set a smaller or larger clamping range than the
+-- viewport depth range without affecting the depth mapping of the viewport
+-- transform. Another possible use of this extension is to restrict depth
+-- values beyond the viewport depth range to a clamping range other than
+-- the [0, 1] range defined in the
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clamp_zero_one VK_EXT_depth_clamp_zero_one>
+-- extension.
+--
+-- == New Commands
+--
+-- -   'cmdSetDepthClampRangeEXT'
+--
+-- == New Structures
+--
+-- -   'DepthClampRangeEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceDepthClampControlFeaturesEXT'
+--
+-- -   Extending 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo':
+--
+--     -   'PipelineViewportDepthClampControlCreateInfoEXT'
+--
+-- == New Enums
+--
+-- -   'DepthClampModeEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME'
+--
+-- -   'EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT'
+--
+-- == Issues
+--
+-- 1) Should the depth clamp range be a per-viewport parameter?
+--
+-- __RESOLVED__: No. Because the depth clamp range was previously defined
+-- to be equal to the viewport depth range, conformant runtimes are already
+-- handling the depth clamp range as a per-viewport parameter. However
+-- because of complexities from interactions with multiple viewports a
+-- per-viewport clamp range is left to a future extensions if a use case
+-- arises.
+--
+-- 2) Should this pipeline state be dynamic?
+--
+-- __RESOLVED__: Yes. Since the viewport depth range can already be a
+-- dynamic state conformant runtimes are already able to handle the depth
+-- clamp range as a dynamic state.
+--
+-- 3) Can the depth clamp range be ignored when depth clamping is disabled?
+--
+-- __RESOLVED__: Yes. This extension overrides the clamping range used only
+-- when depth clamping is enabled. The alternative would be highly
+-- unintuitive. As a consequence the
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_enable VK_EXT_depth_clip_enable>
+-- extension is required if depth clipping is desired in combination with
+-- this extension.
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-02-13 (Jules Blok)
+--
+--     -   Initial draft
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clamp_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_clamp_control  ( cmdSetDepthClampRangeEXT
+                                                     , PhysicalDeviceDepthClampControlFeaturesEXT(..)
+                                                     , PipelineViewportDepthClampControlCreateInfoEXT(..)
+                                                     , DepthClampRangeEXT(..)
+                                                     , DepthClampModeEXT( DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT
+                                                                        , DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT
+                                                                        , ..
+                                                                        )
+                                                     , EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION
+                                                     , pattern EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION
+                                                     , EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME
+                                                     , pattern EXT_DEPTH_CLAMP_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 Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Marshal.Utils (maybePeek)
+import GHC.IO (throwIO)
+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.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.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(pVkCmdSetDepthClampRangeEXT))
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdSetDepthClampRangeEXT
+  :: FunPtr (Ptr CommandBuffer_T -> DepthClampModeEXT -> Ptr DepthClampRangeEXT -> IO ()) -> Ptr CommandBuffer_T -> DepthClampModeEXT -> Ptr DepthClampRangeEXT -> IO ()
+
+-- | vkCmdSetDepthClampRangeEXT - Set the viewport depth clamp range
+-- dynamically for a command buffer
+--
+-- = Description
+--
+-- This command sets the viewport depth clamp 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_CLAMP_RANGE_EXT'
+-- set in
+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
+-- Otherwise, this state is specified by the
+-- 'PipelineViewportDepthClampControlCreateInfoEXT'::@depthClampMode@ value
+-- used to create the currently active pipeline.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetDepthClampRangeEXT-pDepthClampRange-09647# If
+--     @depthClampMode@ is 'DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT', then
+--     @pDepthClampRange@ must be a valid pointer to a valid
+--     'DepthClampRangeEXT' structure
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdSetDepthClampRangeEXT-depthClampMode-parameter#
+--     @depthClampMode@ /must/ be a valid 'DepthClampModeEXT' value
+--
+-- -   #VUID-vkCmdSetDepthClampRangeEXT-pDepthClampRange-parameter# If
+--     @pDepthClampRange@ is not @NULL@, @pDepthClampRange@ /must/ be a
+--     valid pointer to a valid 'DepthClampRangeEXT' structure
+--
+-- -   #VUID-vkCmdSetDepthClampRangeEXT-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-vkCmdSetDepthClampRangeEXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdSetDepthClampRangeEXT-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_clamp_control VK_EXT_depth_clamp_control>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'DepthClampModeEXT',
+-- 'DepthClampRangeEXT'
+cmdSetDepthClampRangeEXT :: forall io
+                          . (MonadIO io)
+                         => -- | @commandBuffer@ is the command buffer into which the command will be
+                            -- recorded.
+                            CommandBuffer
+                         -> -- | @depthClampMode@ determines how the clamp range is determined for each
+                            -- viewport.
+                            DepthClampModeEXT
+                         -> -- | @pDepthClampRange@ sets the depth clamp range for all viewports if
+                            -- @depthClampMode@ is 'DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT'.
+                            ("depthClampRange" ::: Maybe DepthClampRangeEXT)
+                         -> io ()
+cmdSetDepthClampRangeEXT commandBuffer
+                           depthClampMode
+                           depthClampRange = liftIO . evalContT $ do
+  let vkCmdSetDepthClampRangeEXTPtr = pVkCmdSetDepthClampRangeEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdSetDepthClampRangeEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthClampRangeEXT is null" Nothing Nothing
+  let vkCmdSetDepthClampRangeEXT' = mkVkCmdSetDepthClampRangeEXT vkCmdSetDepthClampRangeEXTPtr
+  pDepthClampRange <- case (depthClampRange) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  lift $ traceAroundEvent "vkCmdSetDepthClampRangeEXT" (vkCmdSetDepthClampRangeEXT'
+                                                          (commandBufferHandle (commandBuffer))
+                                                          (depthClampMode)
+                                                          pDepthClampRange)
+  pure $ ()
+
+
+-- | VkPhysicalDeviceDepthClampControlFeaturesEXT - Structure describing
+-- additional depth clamp control supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceDepthClampControlFeaturesEXT' 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. 'PhysicalDeviceDepthClampControlFeaturesEXT' /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_depth_clamp_control VK_EXT_depth_clamp_control>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceDepthClampControlFeaturesEXT = PhysicalDeviceDepthClampControlFeaturesEXT
+  { -- | #features-depthClampControl# @depthClampControl@ indicates that the
+    -- implementation supports setting
+    -- 'PipelineViewportDepthClampControlCreateInfoEXT'::@depthClampMode@ to
+    -- 'DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT'.
+    depthClampControl :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceDepthClampControlFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceDepthClampControlFeaturesEXT
+
+instance ToCStruct PhysicalDeviceDepthClampControlFeaturesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceDepthClampControlFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (depthClampControl))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceDepthClampControlFeaturesEXT where
+  peekCStruct p = do
+    depthClampControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceDepthClampControlFeaturesEXT
+             (bool32ToBool depthClampControl)
+
+instance Storable PhysicalDeviceDepthClampControlFeaturesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceDepthClampControlFeaturesEXT where
+  zero = PhysicalDeviceDepthClampControlFeaturesEXT
+           zero
+
+
+-- | VkPipelineViewportDepthClampControlCreateInfoEXT - Structure specifying
+-- parameters of a newly created pipeline depth clamp control state
+--
+-- = Description
+--
+-- This structure extends
+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' and specifies
+-- the depth clamp range used in the pipeline. If this structure is not
+-- provided in the next chain then @depthClampMode@ defaults to
+-- 'DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT'.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-pDepthClampRange-09646#
+--     If @depthClampMode@ is 'DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT',
+--     and the pipeline is not created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT',
+--     then @pDepthClampRange@ /must/ be a valid pointer to a valid
+--     'DepthClampRangeEXT' structure
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-sType-sType#
+--     @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT'
+--
+-- -   #VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-depthClampMode-parameter#
+--     @depthClampMode@ /must/ be a valid 'DepthClampModeEXT' value
+--
+-- -   #VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-pDepthClampRange-parameter#
+--     If @pDepthClampRange@ is not @NULL@, @pDepthClampRange@ /must/ be a
+--     valid pointer to a valid 'DepthClampRangeEXT' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clamp_control VK_EXT_depth_clamp_control>,
+-- 'DepthClampModeEXT', 'DepthClampRangeEXT',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PipelineViewportDepthClampControlCreateInfoEXT = PipelineViewportDepthClampControlCreateInfoEXT
+  { -- | @depthClampMode@ determines how the clamp range is determined for each
+    -- viewport.
+    depthClampMode :: DepthClampModeEXT
+  , -- | @pDepthClampRange@ sets the depth clamp range for all viewports if
+    -- @depthClampMode@ is 'DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT'.
+    depthClampRange :: Maybe DepthClampRangeEXT
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineViewportDepthClampControlCreateInfoEXT)
+#endif
+deriving instance Show PipelineViewportDepthClampControlCreateInfoEXT
+
+instance ToCStruct PipelineViewportDepthClampControlCreateInfoEXT where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineViewportDepthClampControlCreateInfoEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr DepthClampModeEXT)) (depthClampMode)
+    pDepthClampRange'' <- case (depthClampRange) of
+      Nothing -> pure nullPtr
+      Just j -> ContT $ withCStruct (j)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr DepthClampRangeEXT))) pDepthClampRange''
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DepthClampModeEXT)) (zero)
+    f
+
+instance FromCStruct PipelineViewportDepthClampControlCreateInfoEXT where
+  peekCStruct p = do
+    depthClampMode <- peek @DepthClampModeEXT ((p `plusPtr` 16 :: Ptr DepthClampModeEXT))
+    pDepthClampRange <- peek @(Ptr DepthClampRangeEXT) ((p `plusPtr` 24 :: Ptr (Ptr DepthClampRangeEXT)))
+    pDepthClampRange' <- maybePeek (\j -> peekCStruct @DepthClampRangeEXT (j)) pDepthClampRange
+    pure $ PipelineViewportDepthClampControlCreateInfoEXT
+             depthClampMode pDepthClampRange'
+
+instance Zero PipelineViewportDepthClampControlCreateInfoEXT where
+  zero = PipelineViewportDepthClampControlCreateInfoEXT
+           zero
+           Nothing
+
+
+-- | VkDepthClampRangeEXT - Structure specifying a depth clamp range
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkDepthClampRangeEXT-pDepthClampRange-00999# @minDepthClamp@
+--     /must/ be less than or equal to @maxDepthClamp@
+--
+-- -   #VUID-VkDepthClampRangeEXT-pDepthClampRange-09648# If the
+--     @VK_EXT_depth_range_unrestricted@ extension is not enabled,
+--     @minDepthClamp@ /must/ be greater than or equal to @0.0@
+--
+-- -   #VUID-VkDepthClampRangeEXT-pDepthClampRange-09649# If the
+--     @VK_EXT_depth_range_unrestricted@ extension is not enabled,
+--     @maxDepthClamp@ /must/ be less than or equal to @1.0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clamp_control VK_EXT_depth_clamp_control>,
+-- 'PipelineViewportDepthClampControlCreateInfoEXT',
+-- 'cmdSetDepthClampRangeEXT'
+data DepthClampRangeEXT = DepthClampRangeEXT
+  { -- | @minDepthClamp@ sets zmin in the depth clamp range of the viewport.
+    minDepthClamp :: Float
+  , -- | @maxDepthClamp@ sets zmax in the depth clamp range of the viewport.
+    maxDepthClamp :: Float
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (DepthClampRangeEXT)
+#endif
+deriving instance Show DepthClampRangeEXT
+
+instance ToCStruct DepthClampRangeEXT where
+  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p DepthClampRangeEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (minDepthClamp))
+    poke ((p `plusPtr` 4 :: Ptr CFloat)) (CFloat (maxDepthClamp))
+    f
+  cStructSize = 8
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (zero))
+    poke ((p `plusPtr` 4 :: Ptr CFloat)) (CFloat (zero))
+    f
+
+instance FromCStruct DepthClampRangeEXT where
+  peekCStruct p = do
+    minDepthClamp <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))
+    maxDepthClamp <- peek @CFloat ((p `plusPtr` 4 :: Ptr CFloat))
+    pure $ DepthClampRangeEXT
+             (coerce @CFloat @Float minDepthClamp)
+             (coerce @CFloat @Float maxDepthClamp)
+
+instance Storable DepthClampRangeEXT where
+  sizeOf ~_ = 8
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero DepthClampRangeEXT where
+  zero = DepthClampRangeEXT
+           zero
+           zero
+
+
+-- | VkDepthClampModeEXT - Modes that determine the depth clamp range
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clamp_control VK_EXT_depth_clamp_control>,
+-- 'PipelineViewportDepthClampControlCreateInfoEXT',
+-- 'cmdSetDepthClampRangeEXT'
+newtype DepthClampModeEXT = DepthClampModeEXT Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT' specifies that the depth clamp
+-- range follows the viewport depth range. The depth clamp range of each
+-- viewport will implicitly be set to zmin = min(n,f) and zmax = max(n,f),
+-- where n and f are the @minDepth@ and @maxDepth@ depth range values of
+-- the viewport.
+pattern DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT = DepthClampModeEXT 0
+
+-- | 'DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT' specifies that a single
+-- user-defined depth clamp range will be used for all viewports. The
+-- user-defined depth clamp range is defined by the @minDepthClamp@ and
+-- @maxDepthClamp@ members of 'DepthClampRangeEXT'.
+pattern DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT = DepthClampModeEXT 1
+
+{-# COMPLETE
+  DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT
+  , DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT ::
+    DepthClampModeEXT
+  #-}
+
+conNameDepthClampModeEXT :: String
+conNameDepthClampModeEXT = "DepthClampModeEXT"
+
+enumPrefixDepthClampModeEXT :: String
+enumPrefixDepthClampModeEXT = "DEPTH_CLAMP_MODE_"
+
+showTableDepthClampModeEXT :: [(DepthClampModeEXT, String)]
+showTableDepthClampModeEXT =
+  [
+    ( DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT
+    , "VIEWPORT_RANGE_EXT"
+    )
+  ,
+    ( DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT
+    , "USER_DEFINED_RANGE_EXT"
+    )
+  ]
+
+instance Show DepthClampModeEXT where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixDepthClampModeEXT
+      showTableDepthClampModeEXT
+      conNameDepthClampModeEXT
+      (\(DepthClampModeEXT x) -> x)
+      (showsPrec 11)
+
+instance Read DepthClampModeEXT where
+  readPrec =
+    enumReadPrec
+      enumPrefixDepthClampModeEXT
+      showTableDepthClampModeEXT
+      conNameDepthClampModeEXT
+      DepthClampModeEXT
+
+type EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION"
+pattern EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION = 1
+
+
+type EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME = "VK_EXT_depth_clamp_control"
+
+-- No documentation found for TopLevel "VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME"
+pattern EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME = "VK_EXT_depth_clamp_control"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clamp_control.hs-boot b/src/Vulkan/Extensions/VK_EXT_depth_clamp_control.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_depth_clamp_control.hs-boot
@@ -0,0 +1,179 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_depth_clamp_control - device extension
+--
+-- = VK_EXT_depth_clamp_control
+--
+-- [__Name String__]
+--     @VK_EXT_depth_clamp_control@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     583
+--
+-- [__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 Vulkan Version 1.1>
+--
+-- [__Contact__]
+--
+--     -   Jules Blok
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_depth_clamp_control] @jules%0A*Here describe the issue or question you have about the VK_EXT_depth_clamp_control extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_depth_clamp_control.adoc VK_EXT_depth_clamp_control>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-07-15
+--
+-- [__Contributors__]
+--
+--     -   Jules Blok, Independent
+--
+-- == Description
+--
+-- This extension allows the application to control the viewport depth
+-- clamp range separately from the viewport @minDepth@ and @maxDepth@. This
+-- gives the ability for the application to restrict depth values to an
+-- application-defined range rather than the viewport depth range or the
+-- range defined in the
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clamp_zero_one VK_EXT_depth_clamp_zero_one>
+-- extension.
+--
+-- It can be used to set a smaller or larger clamping range than the
+-- viewport depth range without affecting the depth mapping of the viewport
+-- transform. Another possible use of this extension is to restrict depth
+-- values beyond the viewport depth range to a clamping range other than
+-- the [0, 1] range defined in the
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clamp_zero_one VK_EXT_depth_clamp_zero_one>
+-- extension.
+--
+-- == New Commands
+--
+-- -   'cmdSetDepthClampRangeEXT'
+--
+-- == New Structures
+--
+-- -   'DepthClampRangeEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceDepthClampControlFeaturesEXT'
+--
+-- -   Extending 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo':
+--
+--     -   'PipelineViewportDepthClampControlCreateInfoEXT'
+--
+-- == New Enums
+--
+-- -   'DepthClampModeEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME'
+--
+-- -   'EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT'
+--
+-- == Issues
+--
+-- 1) Should the depth clamp range be a per-viewport parameter?
+--
+-- __RESOLVED__: No. Because the depth clamp range was previously defined
+-- to be equal to the viewport depth range, conformant runtimes are already
+-- handling the depth clamp range as a per-viewport parameter. However
+-- because of complexities from interactions with multiple viewports a
+-- per-viewport clamp range is left to a future extensions if a use case
+-- arises.
+--
+-- 2) Should this pipeline state be dynamic?
+--
+-- __RESOLVED__: Yes. Since the viewport depth range can already be a
+-- dynamic state conformant runtimes are already able to handle the depth
+-- clamp range as a dynamic state.
+--
+-- 3) Can the depth clamp range be ignored when depth clamping is disabled?
+--
+-- __RESOLVED__: Yes. This extension overrides the clamping range used only
+-- when depth clamping is enabled. The alternative would be highly
+-- unintuitive. As a consequence the
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_enable VK_EXT_depth_clip_enable>
+-- extension is required if depth clipping is desired in combination with
+-- this extension.
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-02-13 (Jules Blok)
+--
+--     -   Initial draft
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clamp_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_clamp_control  ( DepthClampRangeEXT
+                                                     , PhysicalDeviceDepthClampControlFeaturesEXT
+                                                     , PipelineViewportDepthClampControlCreateInfoEXT
+                                                     , DepthClampModeEXT
+                                                     ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data DepthClampRangeEXT
+
+instance ToCStruct DepthClampRangeEXT
+instance Show DepthClampRangeEXT
+
+instance FromCStruct DepthClampRangeEXT
+
+
+data PhysicalDeviceDepthClampControlFeaturesEXT
+
+instance ToCStruct PhysicalDeviceDepthClampControlFeaturesEXT
+instance Show PhysicalDeviceDepthClampControlFeaturesEXT
+
+instance FromCStruct PhysicalDeviceDepthClampControlFeaturesEXT
+
+
+data PipelineViewportDepthClampControlCreateInfoEXT
+
+instance ToCStruct PipelineViewportDepthClampControlCreateInfoEXT
+instance Show PipelineViewportDepthClampControlCreateInfoEXT
+
+instance FromCStruct PipelineViewportDepthClampControlCreateInfoEXT
+
+
+data DepthClampModeEXT
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_depth_clamp_zero_one - device extension
 --
--- == VK_EXT_depth_clamp_zero_one
+-- = VK_EXT_depth_clamp_zero_one
 --
 -- [__Name String__]
 --     @VK_EXT_depth_clamp_zero_one@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -70,7 +72,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDepthClampZeroOneFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_depth_clamp_zero_one - device extension
 --
--- == VK_EXT_depth_clamp_zero_one
+-- = VK_EXT_depth_clamp_zero_one
 --
 -- [__Name String__]
 --     @VK_EXT_depth_clamp_zero_one@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -70,7 +72,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDepthClampZeroOneFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_depth_clip_control - device extension
 --
--- == VK_EXT_depth_clip_control
+-- = VK_EXT_depth_clip_control
 --
 -- [__Name String__]
 --     @VK_EXT_depth_clip_control@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -119,8 +121,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDepthClipControlFeaturesEXT',
--- 'PipelineViewportDepthClipControlCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -236,9 +237,9 @@
 -- == Valid Usage
 --
 -- -   #VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-negativeOneToOne-06470#
---     If
+--     If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     is not enabled, @negativeOneToOne@ /must/ be
+--     feature is not enabled, @negativeOneToOne@ /must/ be
 --     'Vulkan.Core10.FundamentalTypes.FALSE'
 --
 -- == Valid Usage (Implicit)
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_depth_clip_control - device extension
 --
--- == VK_EXT_depth_clip_control
+-- = VK_EXT_depth_clip_control
 --
 -- [__Name String__]
 --     @VK_EXT_depth_clip_control@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -119,8 +121,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDepthClipControlFeaturesEXT',
--- 'PipelineViewportDepthClipControlCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_depth_clip_enable - device extension
 --
--- == VK_EXT_depth_clip_enable
+-- = VK_EXT_depth_clip_enable
 --
 -- [__Name String__]
 --     @VK_EXT_depth_clip_enable@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -100,9 +100,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDepthClipEnableFeaturesEXT',
--- 'PipelineRasterizationDepthClipStateCreateFlagsEXT',
--- 'PipelineRasterizationDepthClipStateCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -185,7 +183,7 @@
     -- via the 'PipelineRasterizationDepthClipStateCreateInfoEXT' pipeline
     -- state. Otherwise depth clipping is only enabled when
     -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthClampEnable@
-    -- is set to 'Vulkan.Core10.FundamentalTypes.FALSE'.
+    -- is 'Vulkan.Core10.FundamentalTypes.FALSE'.
     depthClipEnable :: Bool }
   deriving (Typeable, Eq)
 #if defined(GENERIC_INSTANCES)
@@ -299,6 +297,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_enable VK_EXT_depth_clip_enable>,
+-- 'Vulkan.Core10.FundamentalTypes.Flags',
 -- 'PipelineRasterizationDepthClipStateCreateInfoEXT'
 newtype PipelineRasterizationDepthClipStateCreateFlagsEXT = PipelineRasterizationDepthClipStateCreateFlagsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_depth_clip_enable - device extension
 --
--- == VK_EXT_depth_clip_enable
+-- = VK_EXT_depth_clip_enable
 --
 -- [__Name String__]
 --     @VK_EXT_depth_clip_enable@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -100,9 +100,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDepthClipEnableFeaturesEXT',
--- 'PipelineRasterizationDepthClipStateCreateFlagsEXT',
--- 'PipelineRasterizationDepthClipStateCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_depth_range_unrestricted - device extension
 --
--- == VK_EXT_depth_range_unrestricted
+-- = VK_EXT_depth_range_unrestricted
 --
 -- [__Name String__]
 --     @VK_EXT_depth_range_unrestricted@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     None
@@ -76,7 +76,7 @@
 --
 -- __RESOLVED__: This situation can also arise without this extension (when
 -- fragment shaders replace depth values, for example), and this extension
--- does not change the behaviour, which is defined in the
+-- does not change the behavior, which is defined in the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth Depth Test>
 -- section of the Fragment Operations chapter.
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_descriptor_buffer - device extension
 --
--- == VK_EXT_descriptor_buffer
+-- = VK_EXT_descriptor_buffer
 --
 -- [__Name String__]
 --     @VK_EXT_descriptor_buffer@
@@ -21,13 +21,25 @@
 --     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
+--                      or
+--                     
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
---     and
+--                  and
+--                 
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_indexing VK_EXT_descriptor_indexing>
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
+--          and
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__API Interactions__]
 --
@@ -275,25 +287,7 @@
 --
 -- == See Also
 --
--- 'BufferCaptureDescriptorDataInfoEXT', 'DescriptorAddressInfoEXT',
--- 'DescriptorBufferBindingInfoEXT',
--- 'DescriptorBufferBindingPushDescriptorBufferHandleEXT',
--- 'DescriptorDataEXT', 'DescriptorGetInfoEXT',
--- 'ImageCaptureDescriptorDataInfoEXT',
--- 'ImageViewCaptureDescriptorDataInfoEXT',
--- 'OpaqueCaptureDescriptorDataCreateInfoEXT',
--- 'PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT',
--- 'PhysicalDeviceDescriptorBufferFeaturesEXT',
--- 'PhysicalDeviceDescriptorBufferPropertiesEXT',
--- 'SamplerCaptureDescriptorDataInfoEXT',
--- 'cmdBindDescriptorBufferEmbeddedSamplersEXT',
--- 'cmdBindDescriptorBuffersEXT', 'cmdSetDescriptorBufferOffsetsEXT',
--- 'getBufferOpaqueCaptureDescriptorDataEXT', 'getDescriptorEXT',
--- 'getDescriptorSetLayoutBindingOffsetEXT',
--- 'getDescriptorSetLayoutSizeEXT',
--- 'getImageOpaqueCaptureDescriptorDataEXT',
--- 'getImageViewOpaqueCaptureDescriptorDataEXT',
--- 'getSamplerOpaqueCaptureDescriptorDataEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -730,7 +724,7 @@
 -- -   #VUID-vkGetDescriptorEXT-dataSize-08125# If @pDescriptorInfo->type@
 --     is not
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'
---     or @pDescriptorInfo->data.pCombinedImageSampler@ has a @imageView@
+--     or @pDescriptorInfo->data.pCombinedImageSampler@ has an @imageView@
 --     member that was not created with a
 --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo'
 --     structure in its @pNext@ chain, @dataSize@ /must/ equal the size of
@@ -747,7 +741,7 @@
 -- -   #VUID-vkGetDescriptorEXT-descriptorType-09469# If
 --     @pDescriptorInfo->type@ is
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'
---     and @pDescriptorInfo->data.pCombinedImageSampler@ has a @imageView@
+--     and @pDescriptorInfo->data.pCombinedImageSampler@ has an @imageView@
 --     member that was created with a
 --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo'
 --     structure in its @pNext@ chain, @dataSize@ /must/ equal the size of
@@ -791,7 +785,7 @@
                     ("descriptorInfo" ::: DescriptorGetInfoEXT)
                  -> -- | @dataSize@ is the amount of the descriptor data to get in bytes.
                     ("dataSize" ::: Word64)
-                 -> -- | @pDescriptor@ is a pointer to a user-allocated buffer where the
+                 -> -- | @pDescriptor@ is a pointer to an application-allocated buffer where the
                     -- descriptor will be written.
                     ("descriptor" ::: Ptr ())
                  -> io ()
@@ -839,17 +833,21 @@
 -- -   #VUID-vkCmdBindDescriptorBuffersEXT-maxSamplerDescriptorBufferBindings-08048#
 --     There /must/ be no more than
 --     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@maxSamplerDescriptorBufferBindings@
---     descriptor buffers containing sampler descriptor data bound
+--     elements in @pBindingInfos@ with
+--     'DescriptorBufferBindingInfoEXT'::@usage@ containing
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdBindDescriptorBuffersEXT-maxResourceDescriptorBufferBindings-08049#
 --     There /must/ be no more than
 --     'PhysicalDeviceDescriptorBufferPropertiesEXT'::@maxResourceDescriptorBufferBindings@
---     descriptor buffers containing resource descriptor data bound
+--     elements in @pBindingInfos@ with
+--     'DescriptorBufferBindingInfoEXT'::@usage@ containing
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdBindDescriptorBuffersEXT-None-08050# There /must/ be no
---     more than @1@ descriptor buffer bound that was created with the
+--     more than @1@ element in @pBindingInfos@ with
+--     'DescriptorBufferBindingInfoEXT'::@usage@ containing
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'
---     bit set
 --
 -- -   #VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-08051# @bufferCount@
 --     /must/ be less than or equal to
@@ -993,8 +991,6 @@
 -- /may/ read /must/ be in-bounds of the underlying descriptor buffer
 -- binding.
 --
--- Note
---
 -- Applications can freely decide how large a variable descriptor buffer
 -- binding is, so it may not be safe to read such descriptor payloads
 -- statically. The intention of these rules is to allow implementations to
@@ -1006,16 +1002,12 @@
 -- will result in invalid descriptor data being read, and therefore
 -- undefined behavior.
 --
--- Note
---
 -- For descriptors written by the host, visibility is implied through the
 -- automatic visibility operation on queue submit, and there is no need to
 -- consider @VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT@. Explicit
 -- synchronization for descriptors is only required when descriptors are
 -- updated on the device.
 --
--- Note
---
 -- The requirements above imply that all descriptor bindings have been
 -- defined with the equivalent of
 -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT',
@@ -1335,7 +1327,7 @@
 -- == Valid Usage
 --
 -- -   #VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-None-08072# The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBufferCaptureReplay>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplay descriptorBufferCaptureReplay>
 --     feature /must/ be enabled
 --
 -- -   #VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-08073# @pData@
@@ -1383,8 +1375,8 @@
                                         -> -- | @pInfo@ is a pointer to a 'BufferCaptureDescriptorDataInfoEXT' structure
                                            -- specifying the buffer.
                                            BufferCaptureDescriptorDataInfoEXT
-                                        -> -- | @pData@ is a pointer to a user-allocated buffer where the data will be
-                                           -- written.
+                                        -> -- | @pData@ is a pointer to an application-allocated buffer where the data
+                                           -- will be written.
                                            ("data" ::: Ptr ())
                                         -> io ()
 getBufferOpaqueCaptureDescriptorDataEXT device
@@ -1415,7 +1407,7 @@
 -- == Valid Usage
 --
 -- -   #VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-None-08076# The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBufferCaptureReplay>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplay descriptorBufferCaptureReplay>
 --     feature /must/ be enabled
 --
 -- -   #VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-08077# @pData@
@@ -1463,8 +1455,8 @@
                                        -> -- | @pInfo@ is a pointer to a 'ImageCaptureDescriptorDataInfoEXT' structure
                                           -- specifying the image.
                                           ImageCaptureDescriptorDataInfoEXT
-                                       -> -- | @pData@ is a pointer to a user-allocated buffer where the data will be
-                                          -- written.
+                                       -> -- | @pData@ is a pointer to an application-allocated buffer where the data
+                                          -- will be written.
                                           ("data" ::: Ptr ())
                                        -> io ()
 getImageOpaqueCaptureDescriptorDataEXT device
@@ -1495,7 +1487,7 @@
 -- == Valid Usage
 --
 -- -   #VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-None-08080# The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBufferCaptureReplay>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplay descriptorBufferCaptureReplay>
 --     feature /must/ be enabled
 --
 -- -   #VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-08081#
@@ -1543,8 +1535,8 @@
                                            -> -- | @pInfo@ is a pointer to a 'ImageViewCaptureDescriptorDataInfoEXT'
                                               -- structure specifying the image view.
                                               ImageViewCaptureDescriptorDataInfoEXT
-                                           -> -- | @pData@ is a pointer to a user-allocated buffer where the data will be
-                                              -- written.
+                                           -> -- | @pData@ is a pointer to an application-allocated buffer where the data
+                                              -- will be written.
                                               ("data" ::: Ptr ())
                                            -> io ()
 getImageViewOpaqueCaptureDescriptorDataEXT device
@@ -1575,7 +1567,7 @@
 -- == Valid Usage
 --
 -- -   #VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-None-08084# The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBufferCaptureReplay>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplay descriptorBufferCaptureReplay>
 --     feature /must/ be enabled
 --
 -- -   #VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pData-08085#
@@ -1623,8 +1615,8 @@
                                          -> -- | @pInfo@ is a pointer to a 'SamplerCaptureDescriptorDataInfoEXT'
                                             -- structure specifying the sampler.
                                             SamplerCaptureDescriptorDataInfoEXT
-                                         -> -- | @pData@ is a pointer to a user-allocated buffer where the data will be
-                                            -- written.
+                                         -> -- | @pData@ is a pointer to an application-allocated buffer where the data
+                                            -- will be written.
                                             ("data" ::: Ptr ())
                                          -> io ()
 getSamplerOpaqueCaptureDescriptorDataEXT device
@@ -1656,7 +1648,7 @@
 --
 -- -   #VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-None-08088#
 --     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBuffer descriptorBufferCaptureReplay>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplay descriptorBufferCaptureReplay>
 --     feature /must/ be enabled
 --
 -- -   #VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pData-08089#
@@ -1708,8 +1700,8 @@
                                                           -- 'AccelerationStructureCaptureDescriptorDataInfoEXT' structure specifying
                                                           -- the acceleration structure.
                                                           AccelerationStructureCaptureDescriptorDataInfoEXT
-                                                       -> -- | @pData@ is a pointer to a user-allocated buffer where the data will be
-                                                          -- written.
+                                                       -> -- | @pData@ is a pointer to an application-allocated buffer where the data
+                                                          -- will be written.
                                                           ("data" ::: Ptr ())
                                                        -> io ()
 getAccelerationStructureOpaqueCaptureDescriptorDataEXT device
@@ -1850,9 +1842,9 @@
 --
 -- As there is no way to request robust and non-robust descriptors
 -- separately, or specify robust\/non-robust descriptors in the set layout,
--- if
+-- if the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
--- is enabled then robust descriptors are always used.
+-- feature is enabled then robust descriptors are always used.
 --
 -- If the 'PhysicalDeviceDescriptorBufferPropertiesEXT' structure is
 -- included in the @pNext@ chain of the
@@ -1902,16 +1894,19 @@
     -- bytes when setting offsets into the descriptor buffer.
     descriptorBufferOffsetAlignment :: DeviceSize
   , -- | #limits-maxDescriptorBufferBindings# @maxDescriptorBufferBindings@
-    -- indicates the maximum sum total number of descriptor buffers and
-    -- embedded immutable sampler sets that /can/ be bound.
+    -- indicates the maximum number of descriptor buffer bindings.
     maxDescriptorBufferBindings :: Word32
   , -- | #limits-maxResourceDescriptorBufferBindings#
     -- @maxResourceDescriptorBufferBindings@ indicates the maximum number of
-    -- resource descriptor buffers that /can/ be bound.
+    -- descriptor buffer bindings with
+    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'
+    -- that /can/ be used.
     maxResourceDescriptorBufferBindings :: Word32
   , -- | #limits-maxSamplerDescriptorBufferBindings#
     -- @maxSamplerDescriptorBufferBindings@ indicates the maximum number of
-    -- sampler descriptor buffers that /can/ be bound.
+    -- descriptor buffer bindings with
+    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'
+    -- that /can/ be used.
     maxSamplerDescriptorBufferBindings :: Word32
   , -- | #limits-maxEmbeddedImmutableSamplerBindings#
     -- @maxEmbeddedImmutableSamplerBindings@ indicates the maximum number of
@@ -2445,9 +2440,9 @@
 --
 -- = Description
 --
--- If a
+-- If the @pNext@ chain includes a
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
--- structure is present in the @pNext@ chain,
+-- structure,
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'::@usage@
 -- from that structure is used instead of @usage@ from this structure.
 --
@@ -2456,13 +2451,13 @@
 -- -   #VUID-VkDescriptorBufferBindingInfoEXT-None-09499# If the @pNext@
 --     chain does not include a
 --     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
---     structure, @usage@ must be a valid combination of
+--     structure, @usage@ /must/ be a valid combination of
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' values
 --
 -- -   #VUID-VkDescriptorBufferBindingInfoEXT-None-09500# If the @pNext@
 --     chain does not include a
 --     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
---     structure, @usage@ must not be 0
+--     structure, @usage@ /must/ not be 0
 --
 -- -   #VUID-VkDescriptorBufferBindingInfoEXT-bufferlessPushDescriptors-08056#
 --     If
@@ -3250,8 +3245,8 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>,
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data OpaqueCaptureDescriptorDataCreateInfoEXT = OpaqueCaptureDescriptorDataCreateInfoEXT
-  { -- | @opaqueCaptureDescriptorData@ is a pointer to a user-allocated buffer
-    -- containing opaque capture data retrieved using
+  { -- | @opaqueCaptureDescriptorData@ is a pointer to an application-allocated
+    -- buffer containing opaque capture data retrieved using
     -- 'getBufferOpaqueCaptureDescriptorDataEXT',
     -- 'getImageOpaqueCaptureDescriptorDataEXT',
     -- 'getImageViewOpaqueCaptureDescriptorDataEXT',
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_descriptor_buffer - device extension
 --
--- == VK_EXT_descriptor_buffer
+-- = VK_EXT_descriptor_buffer
 --
 -- [__Name String__]
 --     @VK_EXT_descriptor_buffer@
@@ -21,13 +21,25 @@
 --     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
+--                      or
+--                     
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
---     and
+--                  and
+--                 
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_indexing VK_EXT_descriptor_indexing>
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
+--          and
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__API Interactions__]
 --
@@ -275,25 +287,7 @@
 --
 -- == See Also
 --
--- 'BufferCaptureDescriptorDataInfoEXT', 'DescriptorAddressInfoEXT',
--- 'DescriptorBufferBindingInfoEXT',
--- 'DescriptorBufferBindingPushDescriptorBufferHandleEXT',
--- 'DescriptorDataEXT', 'DescriptorGetInfoEXT',
--- 'ImageCaptureDescriptorDataInfoEXT',
--- 'ImageViewCaptureDescriptorDataInfoEXT',
--- 'OpaqueCaptureDescriptorDataCreateInfoEXT',
--- 'PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT',
--- 'PhysicalDeviceDescriptorBufferFeaturesEXT',
--- 'PhysicalDeviceDescriptorBufferPropertiesEXT',
--- 'SamplerCaptureDescriptorDataInfoEXT',
--- 'cmdBindDescriptorBufferEmbeddedSamplersEXT',
--- 'cmdBindDescriptorBuffersEXT', 'cmdSetDescriptorBufferOffsetsEXT',
--- 'getBufferOpaqueCaptureDescriptorDataEXT', 'getDescriptorEXT',
--- 'getDescriptorSetLayoutBindingOffsetEXT',
--- 'getDescriptorSetLayoutSizeEXT',
--- 'getImageOpaqueCaptureDescriptorDataEXT',
--- 'getImageViewOpaqueCaptureDescriptorDataEXT',
--- 'getSamplerOpaqueCaptureDescriptorDataEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_descriptor_indexing - device extension
 --
--- == VK_EXT_descriptor_indexing
+-- = VK_EXT_descriptor_indexing
 --
 -- [__Name String__]
 --     @VK_EXT_descriptor_indexing@
@@ -21,9 +21,13 @@
 --     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
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance3 VK_KHR_maintenance3>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -47,7 +51,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_nonuniform_qualifier.txt GL_EXT_nonuniform_qualifier>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GL_EXT_nonuniform_qualifier.txt GL_EXT_nonuniform_qualifier>
 --
 -- [__Contributors__]
 --
@@ -184,11 +188,12 @@
 --
 -- == Promotion to Vulkan 1.2
 --
--- Functionality in this extension is included in core Vulkan 1.2, with the
+-- Vulkan APIs in this extension are included in core Vulkan 1.2, with the
 -- EXT suffix omitted. However, if Vulkan 1.2 is supported and this
--- extension is not, the @descriptorIndexing@ capability is optional. The
--- original type, enum and command names are still available as aliases of
--- the core functionality.
+-- extension is not, the @descriptorIndexing@ capability is optional.
+-- External interactions defined by this extension, such as SPIR-V token
+-- names, retain their original names. The original Vulkan API names are
+-- still available as aliases of the core functionality.
 --
 -- == Version History
 --
@@ -202,12 +207,7 @@
 --
 -- == See Also
 --
--- 'DescriptorBindingFlagBitsEXT', 'DescriptorBindingFlagsEXT',
--- 'DescriptorSetLayoutBindingFlagsCreateInfoEXT',
--- 'DescriptorSetVariableDescriptorCountAllocateInfoEXT',
--- 'DescriptorSetVariableDescriptorCountLayoutSupportEXT',
--- 'PhysicalDeviceDescriptorIndexingFeaturesEXT',
--- 'PhysicalDeviceDescriptorIndexingPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_device_address_binding_report - device extension
 --
--- == VK_EXT_device_address_binding_report
+-- = VK_EXT_device_address_binding_report
 --
 -- [__Name String__]
 --     @VK_EXT_device_address_binding_report@
@@ -21,7 +21,11 @@
 --     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 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils>
 --
@@ -129,7 +133,7 @@
 -- __RESOLVED__: The extension covers all Vulkan objects, and is not
 -- restricted to objects backed by VkDeviceMemory objects.
 --
--- 3.) Should reallocation be identified explicitly, or as a unbind\/bind
+-- 3.) Should reallocation be identified explicitly, or as an unbind\/bind
 -- pair?
 --
 -- __RESOLVED__: Reallocation should be represented as an unbind\/bind
@@ -183,7 +187,7 @@
 --
 -- __RESOLVED__: Splitting of virtual address regions, and unmatched
 -- bind\/unbind callbacks may occur. Developers should anticipate that
--- sparse memory may exhibit this behaviour.
+-- sparse memory may exhibit this behavior.
 --
 -- 10.) The specification mandates that a callback /must/ be triggered
 -- whenever a GPU virtual address range associated with any Vulkan object
@@ -214,10 +218,7 @@
 --
 -- == See Also
 --
--- 'DeviceAddressBindingCallbackDataEXT',
--- 'DeviceAddressBindingFlagBitsEXT', 'DeviceAddressBindingFlagsEXT',
--- 'DeviceAddressBindingTypeEXT',
--- 'PhysicalDeviceAddressBindingReportFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_device_address_binding_report - device extension
 --
--- == VK_EXT_device_address_binding_report
+-- = VK_EXT_device_address_binding_report
 --
 -- [__Name String__]
 --     @VK_EXT_device_address_binding_report@
@@ -21,7 +21,11 @@
 --     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 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils>
 --
@@ -129,7 +133,7 @@
 -- __RESOLVED__: The extension covers all Vulkan objects, and is not
 -- restricted to objects backed by VkDeviceMemory objects.
 --
--- 3.) Should reallocation be identified explicitly, or as a unbind\/bind
+-- 3.) Should reallocation be identified explicitly, or as an unbind\/bind
 -- pair?
 --
 -- __RESOLVED__: Reallocation should be represented as an unbind\/bind
@@ -183,7 +187,7 @@
 --
 -- __RESOLVED__: Splitting of virtual address regions, and unmatched
 -- bind\/unbind callbacks may occur. Developers should anticipate that
--- sparse memory may exhibit this behaviour.
+-- sparse memory may exhibit this behavior.
 --
 -- 10.) The specification mandates that a callback /must/ be triggered
 -- whenever a GPU virtual address range associated with any Vulkan object
@@ -214,10 +218,7 @@
 --
 -- == See Also
 --
--- 'DeviceAddressBindingCallbackDataEXT',
--- 'DeviceAddressBindingFlagBitsEXT', 'DeviceAddressBindingFlagsEXT',
--- 'DeviceAddressBindingTypeEXT',
--- 'PhysicalDeviceAddressBindingReportFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_device_fault - device extension
 --
--- == VK_EXT_device_fault
+-- = VK_EXT_device_fault
 --
 -- [__Name String__]
 --     @VK_EXT_device_fault@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -125,12 +127,7 @@
 --
 -- == See Also
 --
--- 'DeviceFaultAddressInfoEXT', 'DeviceFaultAddressTypeEXT',
--- 'DeviceFaultCountsEXT', 'DeviceFaultInfoEXT',
--- 'DeviceFaultVendorBinaryHeaderVersionEXT',
--- 'DeviceFaultVendorBinaryHeaderVersionOneEXT',
--- 'DeviceFaultVendorInfoEXT', 'PhysicalDeviceFaultFeaturesEXT',
--- 'getDeviceFaultInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -253,9 +250,9 @@
 -- If @pFaultInfo@ is not @NULL@, @pFaultCounts@ /must/ point to a
 -- 'DeviceFaultCountsEXT' structure with each structure count or size
 -- member (@addressInfoCount@, @vendorInfoCount@, @vendorBinarySize@) set
--- by the user to the number of elements in the corresponding output array
--- member of @pFaultInfo@ (@pAddressInfos@ and @pVendorInfos@), or to the
--- size of the output buffer in bytes (@pVendorBinaryData@). On return,
+-- by the application to the number of elements in the corresponding output
+-- array member of @pFaultInfo@ (@pAddressInfos@ and @pVendorInfos@), or to
+-- the size of the output buffer in bytes (@pVendorBinaryData@). On return,
 -- each structure count member is overwritten with the number of structures
 -- actually written to the corresponding output array member of
 -- @pFaultInfo@. Similarly, @vendorBinarySize@ is overwritten with the
@@ -471,8 +468,6 @@
 -- > lower_address = (pInfo->reportedAddress & ~(pInfo->addressPrecision-1))
 -- > upper_address = (pInfo->reportedAddress |  (pInfo->addressPrecision-1))
 --
--- Note
---
 -- It is valid for the @reportedAddress@ to contain a more precise address
 -- than indicated by @addressPrecision@. In this case, the value of
 -- @reportedAddress@ should be treated as an additional hint as to the
@@ -684,8 +679,6 @@
 -- address accessed or the precise value of the instruction pointer /must/
 -- lie within the region described.
 --
--- Note
---
 -- Each element of @pAddressInfos@ describes either:
 --
 -- -   A memory access which may have triggered a page fault and may have
@@ -955,8 +948,6 @@
 -- | VkDeviceFaultAddressTypeEXT - Page fault access types
 --
 -- = Description
---
--- Note
 --
 -- The instruction pointer values recorded may not identify the specific
 -- instruction(s) that triggered the fault. The relationship between the
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_device_fault - device extension
 --
--- == VK_EXT_device_fault
+-- = VK_EXT_device_fault
 --
 -- [__Name String__]
 --     @VK_EXT_device_fault@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -125,12 +127,7 @@
 --
 -- == See Also
 --
--- 'DeviceFaultAddressInfoEXT', 'DeviceFaultAddressTypeEXT',
--- 'DeviceFaultCountsEXT', 'DeviceFaultInfoEXT',
--- 'DeviceFaultVendorBinaryHeaderVersionEXT',
--- 'DeviceFaultVendorBinaryHeaderVersionOneEXT',
--- 'DeviceFaultVendorInfoEXT', 'PhysicalDeviceFaultFeaturesEXT',
--- 'getDeviceFaultInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_device_generated_commands.hs b/src/Vulkan/Extensions/VK_EXT_device_generated_commands.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_device_generated_commands.hs
@@ -0,0 +1,7987 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_device_generated_commands - device extension
+--
+-- = VK_EXT_device_generated_commands
+--
+-- [__Name String__]
+--     @VK_EXT_device_generated_commands@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     573
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_address VK_KHR_buffer_device_address>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
+--
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_EXT_shader_object
+--
+-- [__Contact__]
+--
+--     -   Mike Blumenkrantz
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_device_generated_commands] @zmike%0A*Here describe the issue or question you have about the VK_EXT_device_generated_commands extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_device_generated_commands.adoc VK_EXT_device_generated_commands>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-02-23
+--
+-- [__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 requires @VK_KHR_maintenance5@ for the ability to
+--         use VkPipelineCreateFlags2KHR.
+--
+--     -   This extension interacts with @VK_NV_mesh_shader@. If the latter
+--         extension is not supported, remove the command tokens to
+--         initiate NV mesh tasks drawing in this extension.
+--
+--     -   This extension interacts with @VK_EXT_mesh_shader@. If the
+--         latter extension is not supported, remove the command tokens to
+--         initiate EXT mesh tasks drawing in this extension.
+--
+--     -   This extension interacts with @VK_KHR_ray_tracing_pipeline@. If
+--         the latter extension is not supported, remove the command tokens
+--         to initiate ray tracing in this extension.
+--
+--     -   This extension interacts with @VK_EXT_shader_object@. If the
+--         latter extension is not supported, remove references to shader
+--         objects in this extension.
+--
+-- [__Contributors__]
+--
+--     -   Mike Blumenkrantz, VALVE
+--
+--     -   Hans-Kristian Arntzen, VALVE
+--
+--     -   Jan-Harald Fredriksen, ARM
+--
+--     -   Spencer Fricke, LunarG
+--
+--     -   Ricardo Garcia, Igalia
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Baldur Karlsson, VALVE
+--
+--     -   Christoph Kubisch, NVIDIA
+--
+--     -   Lionel Landwerlin, INTEL
+--
+--     -   Jon Leech, Khronos
+--
+--     -   Ting Wei, ARM
+--
+--     -   Ken Shanyi Zhang, AMD
+--
+--     -   Faith Ekstrand, Collabora
+--
+--     -   Vikram Kushwaha, NVIDIA
+--
+--     -   Connor Abbott, VALVE
+--
+--     -   Samuel Pitoiset, VALVE
+--
+-- == Description
+--
+-- This extension allows the device to generate a number of commands for
+-- command buffers. It provides a subset of functionality from both
+-- @VK_NV_device_generated_commands@ and
+-- @VK_NV_device_generated_commands_compute@ as well as some new features.
+--
+-- 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.
+--
+-- To render objects which have been processed on the device, Vulkan has
+-- several ways to perform indirect rendering, from the most basic
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect' with one indirect
+-- draw to
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndirectCount'
+-- which supports multiple indirect draws batched together, with a way to
+-- determine number of draws at device execution time.
+--
+-- However, if rendering state needs to change between the indirect draws,
+-- then unextended Vulkan forces the application to speculatively record a
+-- prohibitive number of redundant indirect commands covering all possible
+-- state combinations - which could end up processing nothing after culling
+-- - or 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 and shader object 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.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress'
+--
+-- -   create a 'Vulkan.Extensions.Handles.IndirectExecutionSetEXT' for the
+--     ability to change shaders on the device.
+--
+-- -   create a 'Vulkan.Extensions.Handles.IndirectCommandsLayoutEXT',
+--     which lists the 'IndirectCommandsTokenTypeEXT' 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 based on the layout.
+--
+-- -   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
+--     'getGeneratedCommandsMemoryRequirementsEXT'.
+--
+-- -   optionally preprocess the generated content using
+--     'cmdPreprocessGeneratedCommandsEXT', for example on an asynchronous
+--     compute queue, or for the purpose of re-using the data in multiple
+--     executions.
+--
+-- -   call 'cmdExecuteGeneratedCommandsEXT' 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 number of vertex buffer bindings
+--
+-- -   a different index buffer, with an optional dynamic offset and index
+--     type
+--
+-- -   a number of different push constants
+--
+-- -   updates to bound shader stages
+--
+-- For each dispatch in a sequence, the following can be specified:
+--
+-- -   a number of different push constants
+--
+-- -   updates to bound shader stages
+--
+-- For each trace rays in a sequence, the following can be specified:
+--
+-- -   a number of different push constants
+--
+-- -   updates to bound shader stages
+--
+-- 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.IndirectCommandsLayoutEXT'
+--
+-- -   'Vulkan.Extensions.Handles.IndirectExecutionSetEXT'
+--
+-- == New Commands
+--
+-- -   'cmdExecuteGeneratedCommandsEXT'
+--
+-- -   'cmdPreprocessGeneratedCommandsEXT'
+--
+-- -   'createIndirectCommandsLayoutEXT'
+--
+-- -   'createIndirectExecutionSetEXT'
+--
+-- -   'destroyIndirectCommandsLayoutEXT'
+--
+-- -   'destroyIndirectExecutionSetEXT'
+--
+-- -   'getGeneratedCommandsMemoryRequirementsEXT'
+--
+-- -   'updateIndirectExecutionSetPipelineEXT'
+--
+-- -   'updateIndirectExecutionSetShaderEXT'
+--
+-- == New Structures
+--
+-- -   'BindIndexBufferIndirectCommandEXT'
+--
+-- -   'BindVertexBufferIndirectCommandEXT'
+--
+-- -   'DrawIndirectCountIndirectCommandEXT'
+--
+-- -   'GeneratedCommandsInfoEXT'
+--
+-- -   'GeneratedCommandsMemoryRequirementsInfoEXT'
+--
+-- -   'IndirectCommandsExecutionSetTokenEXT'
+--
+-- -   'IndirectCommandsIndexBufferTokenEXT'
+--
+-- -   'IndirectCommandsLayoutCreateInfoEXT'
+--
+-- -   'IndirectCommandsLayoutTokenEXT'
+--
+-- -   'IndirectCommandsPushConstantTokenEXT'
+--
+-- -   'IndirectCommandsVertexBufferTokenEXT'
+--
+-- -   'IndirectExecutionSetCreateInfoEXT'
+--
+-- -   'IndirectExecutionSetPipelineInfoEXT'
+--
+-- -   'IndirectExecutionSetShaderInfoEXT'
+--
+-- -   'IndirectExecutionSetShaderLayoutInfoEXT'
+--
+-- -   'WriteIndirectExecutionSetPipelineEXT'
+--
+-- -   Extending 'GeneratedCommandsInfoEXT',
+--     'GeneratedCommandsMemoryRequirementsInfoEXT':
+--
+--     -   'GeneratedCommandsPipelineInfoEXT'
+--
+--     -   'GeneratedCommandsShaderInfoEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>
+-- is supported:
+--
+-- -   'WriteIndirectExecutionSetShaderEXT'
+--
+-- == New Unions
+--
+-- -   'IndirectCommandsTokenDataEXT'
+--
+-- -   'IndirectExecutionSetInfoEXT'
+--
+-- == New Enums
+--
+-- -   'IndirectCommandsInputModeFlagBitsEXT'
+--
+-- -   'IndirectCommandsLayoutUsageFlagBitsEXT'
+--
+-- -   'IndirectCommandsTokenTypeEXT'
+--
+-- -   'IndirectExecutionSetInfoTypeEXT'
+--
+-- == New Bitmasks
+--
+-- -   'IndirectCommandsInputModeFlagsEXT'
+--
+-- -   'IndirectCommandsLayoutUsageFlagsEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME'
+--
+-- -   'EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':
+--
+--     -   'ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT'
+--
+--     -   'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_maintenance5.BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':
+--
+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':
+--
+--     -   'PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_shader_object.ShaderCreateFlagBitsEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT'
+--
+-- == Example Code
+--
+-- TODO
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-02-23 (Mike Blumenkrantz)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_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_EXT_device_generated_commands  ( cmdExecuteGeneratedCommandsEXT
+                                                           , cmdPreprocessGeneratedCommandsEXT
+                                                           , getGeneratedCommandsMemoryRequirementsEXT
+                                                           , createIndirectCommandsLayoutEXT
+                                                           , withIndirectCommandsLayoutEXT
+                                                           , destroyIndirectCommandsLayoutEXT
+                                                           , createIndirectExecutionSetEXT
+                                                           , withIndirectExecutionSetEXT
+                                                           , destroyIndirectExecutionSetEXT
+                                                           , updateIndirectExecutionSetPipelineEXT
+                                                           , updateIndirectExecutionSetShaderEXT
+                                                           , pattern PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT
+                                                           , pattern ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT
+                                                           , pattern ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT
+                                                           , PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT(..)
+                                                           , PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT(..)
+                                                           , GeneratedCommandsPipelineInfoEXT(..)
+                                                           , GeneratedCommandsShaderInfoEXT(..)
+                                                           , GeneratedCommandsMemoryRequirementsInfoEXT(..)
+                                                           , IndirectExecutionSetPipelineInfoEXT(..)
+                                                           , IndirectExecutionSetShaderLayoutInfoEXT(..)
+                                                           , IndirectExecutionSetShaderInfoEXT(..)
+                                                           , IndirectExecutionSetCreateInfoEXT(..)
+                                                           , GeneratedCommandsInfoEXT(..)
+                                                           , WriteIndirectExecutionSetPipelineEXT(..)
+                                                           , WriteIndirectExecutionSetShaderEXT(..)
+                                                           , IndirectCommandsLayoutCreateInfoEXT(..)
+                                                           , IndirectCommandsLayoutTokenEXT(..)
+                                                           , DrawIndirectCountIndirectCommandEXT(..)
+                                                           , IndirectCommandsVertexBufferTokenEXT(..)
+                                                           , BindVertexBufferIndirectCommandEXT(..)
+                                                           , IndirectCommandsIndexBufferTokenEXT(..)
+                                                           , BindIndexBufferIndirectCommandEXT(..)
+                                                           , IndirectCommandsPushConstantTokenEXT(..)
+                                                           , IndirectCommandsExecutionSetTokenEXT(..)
+                                                           , IndirectExecutionSetInfoEXT(..)
+                                                           , IndirectCommandsTokenDataEXT(..)
+                                                           , IndirectCommandsLayoutUsageFlagsEXT
+                                                           , IndirectCommandsLayoutUsageFlagBitsEXT( INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT
+                                                                                                   , INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT
+                                                                                                   , ..
+                                                                                                   )
+                                                           , IndirectExecutionSetInfoTypeEXT( INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT
+                                                                                            , INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT
+                                                                                            , ..
+                                                                                            )
+                                                           , IndirectCommandsInputModeFlagsEXT
+                                                           , IndirectCommandsInputModeFlagBitsEXT( INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT
+                                                                                                 , INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT
+                                                                                                 , ..
+                                                                                                 )
+                                                           , IndirectCommandsTokenTypeEXT( INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT
+                                                                                         , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT
+                                                                                         , ..
+                                                                                         )
+                                                           , EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION
+                                                           , pattern EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION
+                                                           , EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME
+                                                           , pattern EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME
+                                                           , IndirectCommandsLayoutEXT(..)
+                                                           , IndirectExecutionSetEXT(..)
+                                                           , ShaderEXT(..)
+                                                           , BufferUsageFlagBits2KHR(..)
+                                                           , BufferUsageFlags2KHR
+                                                           , PipelineCreateFlagBits2KHR(..)
+                                                           , PipelineCreateFlags2KHR
+                                                           , ShaderCreateFlagBitsEXT(..)
+                                                           , ShaderCreateFlagsEXT
+                                                           ) 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 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 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.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.NamedType ((:::))
+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+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 (DescriptorSetLayout)
+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(pVkCmdExecuteGeneratedCommandsEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdPreprocessGeneratedCommandsEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkCreateIndirectCommandsLayoutEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkCreateIndirectExecutionSetEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkDestroyIndirectCommandsLayoutEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkDestroyIndirectExecutionSetEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkGetGeneratedCommandsMemoryRequirementsEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkUpdateIndirectExecutionSetPipelineEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkUpdateIndirectExecutionSetShaderEXT))
+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 (Flags)
+import Vulkan.Core10.Enums.IndexType (IndexType)
+import Vulkan.Extensions.Handles (IndirectCommandsLayoutEXT)
+import Vulkan.Extensions.Handles (IndirectCommandsLayoutEXT(..))
+import Vulkan.Extensions.Handles (IndirectExecutionSetEXT)
+import Vulkan.Extensions.Handles (IndirectExecutionSetEXT(..))
+import Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2)
+import Vulkan.CStruct.Extends (PeekChain)
+import Vulkan.CStruct.Extends (PeekChain(..))
+import Vulkan.Core10.Handles (Pipeline)
+import Vulkan.Core10.Handles (PipelineLayout)
+import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PipelineLayoutCreateInfo)
+import Vulkan.CStruct.Extends (PokeChain)
+import Vulkan.CStruct.Extends (PokeChain(..))
+import Vulkan.Core10.PipelineLayout (PushConstantRange)
+import Vulkan.Core10.Enums.Result (Result)
+import Vulkan.Core10.Enums.Result (Result(..))
+import Vulkan.Extensions.Handles (ShaderEXT)
+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.AccessFlagBits (AccessFlags)
+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlagBits(ACCESS_COMMAND_PREPROCESS_READ_BIT_NV))
+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags)
+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlagBits(ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV))
+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)
+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT))
+import Vulkan.Core10.Enums.Result (Result(SUCCESS))
+import Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlagBits2KHR(..))
+import Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2KHR)
+import Vulkan.Extensions.Handles (IndirectCommandsLayoutEXT(..))
+import Vulkan.Extensions.Handles (IndirectExecutionSetEXT(..))
+import Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlagBits2KHR(..))
+import Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlags2KHR)
+import Vulkan.Extensions.VK_EXT_shader_object (ShaderCreateFlagBitsEXT(..))
+import Vulkan.Extensions.VK_EXT_shader_object (ShaderCreateFlagsEXT)
+import Vulkan.Extensions.Handles (ShaderEXT(..))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdExecuteGeneratedCommandsEXT
+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> Ptr (SomeStruct GeneratedCommandsInfoEXT) -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> Ptr (SomeStruct GeneratedCommandsInfoEXT) -> IO ()
+
+-- | vkCmdExecuteGeneratedCommandsEXT - Generate and execute commands on the
+-- device
+--
+-- = Description
+--
+-- If the 'INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT' flag
+-- was used to create the
+-- 'GeneratedCommandsInfoEXT'::@indirectCommandsLayout@ then the execution
+-- of sequences through this command /may/ use implementation-defined
+-- ordering which is not guaranteed to be coherent using the same input
+-- data. It does not affect the order of token processing within a
+-- sequence. This is the implied ordering with
+-- 'INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT'.
+--
+-- After a call to 'cmdExecuteGeneratedCommandsEXT', command buffer state
+-- will become undefined according to the tokens executed. This table
+-- specifies the relationship between tokens used and state invalidation.
+--
+-- +---------------------------------------------------+------------------+
+-- | __Common Tokens__                                 | __States         |
+-- |                                                   | Invalidated__    |
+-- +===================================================+==================+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT'  | Bound shaders    |
+-- |                                                   | and pipelines    |
+-- +---------------------------------------------------+------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT'  | Push constant    |
+-- |                                                   | data             |
+-- +---------------------------------------------------+------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT' | Push constant    |
+-- |                                                   | data             |
+-- +---------------------------------------------------+------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT'   | Index buffer     |
+-- +---------------------------------------------------+------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT'  | Vertex buffer    |
+-- +---------------------------------------------------+------------------+
+--
+-- Indirect Execution State Invalidation
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-magFilter-04553# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-vkCmdExecuteGeneratedCommandsEXT-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-vkCmdExecuteGeneratedCommandsEXT-mipmapMode-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-unnormalizedCoordinates-09635#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-unnormalizedCoordinates-09636#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-cubicRangeClamp 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-selectableCubicWeights-09214#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-selectableCubicWeights 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-10068# For each array of
+--     resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08114# Descriptors in
+--     each bound descriptor set, specified via
+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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 specified statically in the 'Vulkan.Core10.Handles.Pipeline'
+--     object bound to the pipeline bind point used by this command, since
+--     that pipeline was bound
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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#spirvenv-image-dimensions ???>
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-None-09600# If a descriptor
+--     with type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-None-07748# If any shader
+--     statically accesses an input attachment, a valid descriptor /must/
+--     be bound to the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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 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-vkCmdExecuteGeneratedCommandsEXT-pDepthInputAttachmentIndex-09595#
+--     Input attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-pDepthInputAttachmentIndex-09596#
+--     Input attachment views accessed in a dynamic render pass via a
+--     shader object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-InputAttachmentIndex-09597#
+--     If an input attachment view accessed in a dynamic render pass via a
+--     shader object has an @InputAttachmentIndex@, the
+--     @InputAttachmentIndex@ /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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 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 bound graphics pipeline or
+--
+--         -   the 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-vkCmdExecuteGeneratedCommandsEXT-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 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 bound graphics pipeline or
+--
+--         -   the 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-vkCmdExecuteGeneratedCommandsEXT-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 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 bound graphics pipeline or
+--
+--         -   the 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08617# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08618# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07834# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07836# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07837# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07838# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07839# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-None-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07840# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07841# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07843# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07844# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07845# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07847# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07848# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-viewportCount-03417# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-scissorCount-03418# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-viewportCount-03419# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which 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, and the state is not inherited, then 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-viewportCount-04138# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-None-07878# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-04876# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-04877# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-logicOp-04878# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-None-08643# 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 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-vkCmdExecuteGeneratedCommandsEXT-multisampledRenderToSingleSampled-07284#
+--     If rasterization is not disabled in the bound graphics pipeline, and
+--     none of the following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the bound graphics pipeline /must/
+--     be the same as the current subpass color and\/or depth\/stencil
+--     attachments
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-viewMask-06178# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the 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-vkCmdExecuteGeneratedCommandsEXT-colorAttachmentCount-06179#
+--     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',
+--     the 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-vkCmdExecuteGeneratedCommandsEXT-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 an @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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 an @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 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-vkCmdExecuteGeneratedCommandsEXT-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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 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-vkCmdExecuteGeneratedCommandsEXT-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 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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 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-vkCmdExecuteGeneratedCommandsEXT-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 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     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_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     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 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-vkCmdExecuteGeneratedCommandsEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command for each
+--     discard rectangle in
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07880# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 bound graphics pipeline /must/ be equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 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-vkCmdExecuteGeneratedCommandsEXT-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 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-vkCmdExecuteGeneratedCommandsEXT-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 bound graphics pipeline /must/ be equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 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-vkCmdExecuteGeneratedCommandsEXT-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 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-vkCmdExecuteGeneratedCommandsEXT-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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the bound graphics
+--     pipeline /must/ have been created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-imageView-06184# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the bound graphics
+--     pipeline /must/ have been created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-colorAttachmentCount-06185#
+--     If the bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the bound graphics pipeline
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-pDepthAttachment-06186# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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-vkCmdExecuteGeneratedCommandsEXT-pStencilAttachment-06187# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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-vkCmdExecuteGeneratedCommandsEXT-multisampledRenderToSingleSampled-07285#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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-vkCmdExecuteGeneratedCommandsEXT-multisampledRenderToSingleSampled-07287#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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-vkCmdExecuteGeneratedCommandsEXT-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 bound graphics pipeline /must/ be
+--     equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-renderPass-06198# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the bound pipeline /must/ have been created with a
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@
+--     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-None-07619# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07621# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07622# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07623# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-None-07624# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08657# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08659# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09416#
+--     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-pipelineFragmentShadingRate-09238#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-rasterizationSamples-07474#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09417#
+--     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, 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09418#
+--     If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09419#
+--     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, 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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-vkCmdExecuteGeneratedCommandsEXT-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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07484#
+--     If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07485#
+--     If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07486#
+--     If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07487#
+--     If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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-vkCmdExecuteGeneratedCommandsEXT-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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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-vkCmdExecuteGeneratedCommandsEXT-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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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-vkCmdExecuteGeneratedCommandsEXT-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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-coverageModulationTableEnable-07488#
+--     If a shader object is bound to any graphics stage or 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-vkCmdExecuteGeneratedCommandsEXT-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 bound
+--     pipeline, then the current @rasterizationSamples@ /must/ be the same
+--     as the sample count of the depth\/stencil attachment
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09420#
+--     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', 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-stage-07073# If the 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-vkCmdExecuteGeneratedCommandsEXT-None-08877# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-None-08878# All bound
+--     graphics shader objects /must/ have been created with identical or
+--     identically defined push constant ranges
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-08879# All bound
+--     graphics shader objects /must/ have been created with identical or
+--     identically defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-None-09116# If a shader
+--     object is bound to any graphics stage or the 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-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-None-09548# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-09549# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-09642# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-09643# If the bound
+--     graphics pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-11045#
+--     @commandBuffer@ /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11046# If
+--     @isPreprocessed@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and
+--     'getGeneratedCommandsMemoryRequirementsEXT' did not return a
+--     required size of zero then 'cmdPreprocessGeneratedCommandsEXT'
+--     /must/ have already been executed on the device before this command
+--     executes, and the preprocessing command /must/ have used the same
+--     @pGeneratedCommandsInfo@ content as well as the content of the input
+--     buffers it references (all except
+--     'GeneratedCommandsInfoEXT'::@preprocessBuffer@)
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11047# If
+--     @isPreprocessed@ is 'Vulkan.Core10.FundamentalTypes.TRUE' then the
+--     @indirectCommandsLayout@ member of @pGeneratedCommandsInfo@ /must/
+--     have been created with the
+--     'INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT' bit set
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11141#
+--     If the @indirectCommandsLayout@ member of @pGeneratedCommandsInfo@
+--     was created with the
+--     'INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT' bit
+--     set, then @isPreprocessed@ /must/ be
+--     'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-preprocessAddress-11142# The
+--     contents of the @preprocessAddress@ member of
+--     @pGeneratedCommandsInfo@ /must/ not have been previously used to
+--     record another 'cmdExecuteGeneratedCommandsEXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11048# If
+--     @isPreprocessed@ is 'Vulkan.Core10.FundamentalTypes.TRUE' then the
+--     bound descriptor sets and push constants /must/ match identically
+--     with those bound during recording of the corresponding call to
+--     'cmdPreprocessGeneratedCommandsEXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-10198# If
+--     @isPreprocessed@ is 'Vulkan.Core10.FundamentalTypes.TRUE' then the
+--     conditional render state and its predicate value /must/ match
+--     identically with the state and value set during execution of the
+--     corresponding call to 'cmdPreprocessGeneratedCommandsEXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11049# If
+--     @isPreprocessed@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and the
+--     @indirectCommandsLayout@ member of @pGeneratedCommandsInfo@ contains
+--     a draw token, then the graphics state bound on @commandBuffer@
+--     /must/ match identically with the graphics state bound on the
+--     @stateCommandBuffer@ passed to 'cmdPreprocessGeneratedCommandsEXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11149# If
+--     @isPreprocessed@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     queue family index of @commandBuffer@ /must/ be the same as the
+--     queue family index used to allocate the @stateCommandBuffer@ passed
+--     to 'cmdPreprocessGeneratedCommandsEXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11051# If
+--     @isPreprocessed@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and the
+--     @indirectCommandsLayout@ member of @pGeneratedCommandsInfo@ contains
+--     a dispatch token, then the compute state bound on @commandBuffer@
+--     /must/ match identically with the compute state bound on the
+--     @stateCommandBuffer@ passed to 'cmdPreprocessGeneratedCommandsEXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11052# If
+--     @isPreprocessed@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and the
+--     @indirectCommandsLayout@ member of @pGeneratedCommandsInfo@ contains
+--     a ray tracing token, then the ray tracing state bound on
+--     @commandBuffer@ /must/ match identically with the ray tracing state
+--     bound on the @stateCommandBuffer@ passed to
+--     'cmdPreprocessGeneratedCommandsEXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11150# If
+--     @isPreprocessed@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and the
+--     @indirectCommandsLayout@ member of @pGeneratedCommandsInfo@ contains
+--     a ray tracing token, the queue family index @commandBuffer@ was
+--     allocated from /must/ be the same queue family index used to
+--     allocate the @stateCommandBuffer@ passed to
+--     'cmdPreprocessGeneratedCommandsEXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11053#
+--     If the token sequence of the passed
+--     'GeneratedCommandsInfoEXT'::@indirectCommandsLayout@ contains a
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT' token, the initial
+--     shader state of 'GeneratedCommandsInfoEXT'::@indirectExecutionSet@
+--     /must/ be bound on @commandBuffer@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11004#
+--     If @indirectCommandsLayout@ was created with a token sequence that
+--     contained the 'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT' token
+--     and @indirectExecutionSet@ was created using
+--     'INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT', every
+--     executed 'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT' token
+--     /must/ bind all the shader stages set in the
+--     'IndirectCommandsExecutionSetTokenEXT'::@shaderStages@ used to
+--     create @indirectCommandsLayout@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11055# If
+--     @isPreprocessed@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and the
+--     token sequence of the passed
+--     'GeneratedCommandsInfoEXT'::@indirectCommandsLayout@ contains a
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT' token, the members
+--     of 'GeneratedCommandsInfoEXT'::@indirectExecutionSet@ accessed by
+--     this command /must/ not have been modified since the preprocess
+--     buffer was generated
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11056#
+--     If the @indirectCommandsLayout@ member of @pGeneratedCommandsInfo@
+--     contains a draw token, then the active render pass /must/ not have a
+--     specified fragment density map
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-deviceGeneratedCommandsTransformFeedback-11057#
+--     If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-deviceGeneratedCommandsTransformFeedback deviceGeneratedCommandsTransformFeedback>
+--     is not supported on device, transform feedback /must/ not be active
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-indirectExecutionSet-11058#
+--     If transform feedback is active,
+--     'GeneratedCommandsInfoEXT'::@indirectExecutionSet@ /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-deviceGeneratedCommands-11059#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-supportedIndirectCommandsShaderStages-11060#
+--     The bound shader stages /must/ be supported by
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-supportedIndirectCommandsShaderStages ::supportedIndirectCommandsShaderStages>
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-supportedIndirectCommandsShaderStages-11061#
+--     Only stages specified in
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-supportedIndirectCommandsShaderStages ::supportedIndirectCommandsShaderStages>
+--     /can/ be set in @pGeneratedCommandsInfo->shaderStages@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-None-11062# If a rendering
+--     pass is currently active, the view mask /must/ be @0@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-11143#
+--     @commandBuffer@ /must/ not have been created with
+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-pGeneratedCommandsInfo-parameter#
+--     @pGeneratedCommandsInfo@ /must/ be a valid pointer to a valid
+--     'GeneratedCommandsInfoEXT' structure
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-videocoding# This command
+--     /must/ only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsEXT-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | Indirection                                                                                                                            |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'GeneratedCommandsInfoEXT'
+cmdExecuteGeneratedCommandsEXT :: forall a io
+                                . ( Extendss GeneratedCommandsInfoEXT a
+                                  , PokeChain a
+                                  , 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 'GeneratedCommandsInfoEXT'
+                                  -- structure containing parameters affecting the generation of commands.
+                                  (GeneratedCommandsInfoEXT a)
+                               -> io ()
+cmdExecuteGeneratedCommandsEXT commandBuffer
+                                 isPreprocessed
+                                 generatedCommandsInfo = liftIO . evalContT $ do
+  let vkCmdExecuteGeneratedCommandsEXTPtr = pVkCmdExecuteGeneratedCommandsEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdExecuteGeneratedCommandsEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdExecuteGeneratedCommandsEXT is null" Nothing Nothing
+  let vkCmdExecuteGeneratedCommandsEXT' = mkVkCmdExecuteGeneratedCommandsEXT vkCmdExecuteGeneratedCommandsEXTPtr
+  pGeneratedCommandsInfo <- ContT $ withCStruct (generatedCommandsInfo)
+  lift $ traceAroundEvent "vkCmdExecuteGeneratedCommandsEXT" (vkCmdExecuteGeneratedCommandsEXT'
+                                                                (commandBufferHandle (commandBuffer))
+                                                                (boolToBool32 (isPreprocessed))
+                                                                (forgetExtensions pGeneratedCommandsInfo))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdPreprocessGeneratedCommandsEXT
+  :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct GeneratedCommandsInfoEXT) -> Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct GeneratedCommandsInfoEXT) -> Ptr CommandBuffer_T -> IO ()
+
+-- | vkCmdPreprocessGeneratedCommandsEXT - Performs preprocessing for
+-- generated commands
+--
+-- = Description
+--
+-- Note
+--
+-- @stateCommandBuffer@ access is not synchronized by the driver, meaning
+-- that this command buffer /must/ not be modified between threads in an
+-- unsafe manner.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-11081#
+--     @commandBuffer@ /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-pGeneratedCommandsInfo-11082#
+--     @pGeneratedCommandsInfo@’s @indirectCommandsLayout@ /must/ have been
+--     created with the
+--     'INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT' bit set
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-indirectCommandsLayout-11084#
+--     If the token sequence of the passed
+--     'GeneratedCommandsInfoEXT'::@indirectCommandsLayout@ contains a
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT' token, the initial
+--     shader state of 'GeneratedCommandsInfoEXT'::@indirectExecutionSet@
+--     /must/ be bound on @stateCommandBuffer@
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-stateCommandBuffer-11138#
+--     @stateCommandBuffer@ /must/ be in the recording state
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-deviceGeneratedCommands-11087#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-supportedIndirectCommandsShaderStages-11088#
+--     Only stages specified in
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-supportedIndirectCommandsShaderStages ::supportedIndirectCommandsShaderStages>
+--     /can/ be set in @pGeneratedCommandsInfo->shaderStages@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-pGeneratedCommandsInfo-parameter#
+--     @pGeneratedCommandsInfo@ /must/ be a valid pointer to a valid
+--     'GeneratedCommandsInfoEXT' structure
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-stateCommandBuffer-parameter#
+--     @stateCommandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-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-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-renderpass# This command
+--     /must/ only be called outside of a render pass instance
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-videocoding# This command
+--     /must/ only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-bufferlevel#
+--     @commandBuffer@ /must/ be a primary
+--     'Vulkan.Core10.Handles.CommandBuffer'
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsEXT-commonparent# Both of
+--     @commandBuffer@, and @stateCommandBuffer@ /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 @stateCommandBuffer@ /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                                                                                                                                 |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'GeneratedCommandsInfoEXT'
+cmdPreprocessGeneratedCommandsEXT :: forall a io
+                                   . ( Extendss GeneratedCommandsInfoEXT a
+                                     , PokeChain a
+                                     , MonadIO io )
+                                  => -- | @commandBuffer@ is the command buffer which does the preprocessing.
+                                     CommandBuffer
+                                  -> -- | @pGeneratedCommandsInfo@ is a pointer to a 'GeneratedCommandsInfoEXT'
+                                     -- structure containing parameters affecting the preprocessing step.
+                                     (GeneratedCommandsInfoEXT a)
+                                  -> -- | @stateCommandBuffer@ is a command buffer from which to snapshot current
+                                     -- states affecting the preprocessing step. When a graphics command action
+                                     -- token is used, graphics state is snapshotted. When a compute action
+                                     -- command token is used, compute state is snapshotted. When a ray tracing
+                                     -- action command token is used, ray tracing state is snapshotted. It can
+                                     -- be deleted at any time after this command has been recorded.
+                                     ("stateCommandBuffer" ::: CommandBuffer)
+                                  -> io ()
+cmdPreprocessGeneratedCommandsEXT commandBuffer
+                                    generatedCommandsInfo
+                                    stateCommandBuffer = liftIO . evalContT $ do
+  let vkCmdPreprocessGeneratedCommandsEXTPtr = pVkCmdPreprocessGeneratedCommandsEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdPreprocessGeneratedCommandsEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPreprocessGeneratedCommandsEXT is null" Nothing Nothing
+  let vkCmdPreprocessGeneratedCommandsEXT' = mkVkCmdPreprocessGeneratedCommandsEXT vkCmdPreprocessGeneratedCommandsEXTPtr
+  pGeneratedCommandsInfo <- ContT $ withCStruct (generatedCommandsInfo)
+  lift $ traceAroundEvent "vkCmdPreprocessGeneratedCommandsEXT" (vkCmdPreprocessGeneratedCommandsEXT'
+                                                                   (commandBufferHandle (commandBuffer))
+                                                                   (forgetExtensions pGeneratedCommandsInfo)
+                                                                   (commandBufferHandle (stateCommandBuffer)))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetGeneratedCommandsMemoryRequirementsEXT
+  :: FunPtr (Ptr Device_T -> Ptr (SomeStruct GeneratedCommandsMemoryRequirementsInfoEXT) -> Ptr (SomeStruct MemoryRequirements2) -> IO ()) -> Ptr Device_T -> Ptr (SomeStruct GeneratedCommandsMemoryRequirementsInfoEXT) -> Ptr (SomeStruct MemoryRequirements2) -> IO ()
+
+-- | vkGetGeneratedCommandsMemoryRequirementsEXT - Retrieve the buffer
+-- allocation requirements for generated commands
+--
+-- = Description
+--
+-- If the size returned is zero, the preprocessing step can be skipped for
+-- this layout.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.Handles.Device',
+-- 'GeneratedCommandsMemoryRequirementsInfoEXT',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'
+getGeneratedCommandsMemoryRequirementsEXT :: forall a b io
+                                           . ( Extendss GeneratedCommandsMemoryRequirementsInfoEXT a
+                                             , PokeChain a
+                                             , Extendss MemoryRequirements2 b
+                                             , PokeChain b
+                                             , PeekChain b
+                                             , MonadIO io )
+                                          => -- | @device@ is the logical device that owns the buffer.
+                                             --
+                                             -- #VUID-vkGetGeneratedCommandsMemoryRequirementsEXT-device-parameter#
+                                             -- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+                                             Device
+                                          -> -- | @pInfo@ is a pointer to a 'GeneratedCommandsMemoryRequirementsInfoEXT'
+                                             -- structure containing parameters required for the memory requirements
+                                             -- query.
+                                             --
+                                             -- #VUID-vkGetGeneratedCommandsMemoryRequirementsEXT-pInfo-parameter#
+                                             -- @pInfo@ /must/ be a valid pointer to a valid
+                                             -- 'GeneratedCommandsMemoryRequirementsInfoEXT' structure
+                                             (GeneratedCommandsMemoryRequirementsInfoEXT a)
+                                          -> io (MemoryRequirements2 b)
+getGeneratedCommandsMemoryRequirementsEXT device info = liftIO . evalContT $ do
+  let vkGetGeneratedCommandsMemoryRequirementsEXTPtr = pVkGetGeneratedCommandsMemoryRequirementsEXT (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetGeneratedCommandsMemoryRequirementsEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetGeneratedCommandsMemoryRequirementsEXT is null" Nothing Nothing
+  let vkGetGeneratedCommandsMemoryRequirementsEXT' = mkVkGetGeneratedCommandsMemoryRequirementsEXT vkGetGeneratedCommandsMemoryRequirementsEXTPtr
+  pInfo <- ContT $ withCStruct (info)
+  pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))
+  lift $ traceAroundEvent "vkGetGeneratedCommandsMemoryRequirementsEXT" (vkGetGeneratedCommandsMemoryRequirementsEXT'
+                                                                           (deviceHandle (device))
+                                                                           (forgetExtensions pInfo)
+                                                                           (forgetExtensions (pPMemoryRequirements)))
+  pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements
+  pure $ (pMemoryRequirements)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCreateIndirectCommandsLayoutEXT
+  :: FunPtr (Ptr Device_T -> Ptr (SomeStruct IndirectCommandsLayoutCreateInfoEXT) -> Ptr AllocationCallbacks -> Ptr IndirectCommandsLayoutEXT -> IO Result) -> Ptr Device_T -> Ptr (SomeStruct IndirectCommandsLayoutCreateInfoEXT) -> Ptr AllocationCallbacks -> Ptr IndirectCommandsLayoutEXT -> IO Result
+
+-- | vkCreateIndirectCommandsLayoutEXT - Create an indirect command layout
+-- object
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCreateIndirectCommandsLayoutEXT-deviceGeneratedCommands-11089#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCreateIndirectCommandsLayoutEXT-device-parameter# @device@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkCreateIndirectCommandsLayoutEXT-pCreateInfo-parameter#
+--     @pCreateInfo@ /must/ be a valid pointer to a valid
+--     'IndirectCommandsLayoutCreateInfoEXT' structure
+--
+-- -   #VUID-vkCreateIndirectCommandsLayoutEXT-pAllocator-parameter# If
+--     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
+--     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
+--     structure
+--
+-- -   #VUID-vkCreateIndirectCommandsLayoutEXT-pIndirectCommandsLayout-parameter#
+--     @pIndirectCommandsLayout@ /must/ be a valid pointer to a
+--     'Vulkan.Extensions.Handles.IndirectCommandsLayoutEXT' 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_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Handles.Device', 'IndirectCommandsLayoutCreateInfoEXT',
+-- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutEXT'
+createIndirectCommandsLayoutEXT :: forall a io
+                                 . ( Extendss IndirectCommandsLayoutCreateInfoEXT a
+                                   , PokeChain a
+                                   , MonadIO io )
+                                => -- | @device@ is the logical device that creates the indirect command layout.
+                                   Device
+                                -> -- | @pCreateInfo@ is a pointer to a 'IndirectCommandsLayoutCreateInfoEXT'
+                                   -- structure containing parameters affecting creation of the indirect
+                                   -- command layout.
+                                   (IndirectCommandsLayoutCreateInfoEXT a)
+                                -> -- | @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 (IndirectCommandsLayoutEXT)
+createIndirectCommandsLayoutEXT device
+                                  createInfo
+                                  allocator = liftIO . evalContT $ do
+  let vkCreateIndirectCommandsLayoutEXTPtr = pVkCreateIndirectCommandsLayoutEXT (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCreateIndirectCommandsLayoutEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateIndirectCommandsLayoutEXT is null" Nothing Nothing
+  let vkCreateIndirectCommandsLayoutEXT' = mkVkCreateIndirectCommandsLayoutEXT vkCreateIndirectCommandsLayoutEXTPtr
+  pCreateInfo <- ContT $ withCStruct (createInfo)
+  pAllocator <- case (allocator) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  pPIndirectCommandsLayout <- ContT $ bracket (callocBytes @IndirectCommandsLayoutEXT 8) free
+  r <- lift $ traceAroundEvent "vkCreateIndirectCommandsLayoutEXT" (vkCreateIndirectCommandsLayoutEXT'
+                                                                      (deviceHandle (device))
+                                                                      (forgetExtensions pCreateInfo)
+                                                                      pAllocator
+                                                                      (pPIndirectCommandsLayout))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pIndirectCommandsLayout <- lift $ peek @IndirectCommandsLayoutEXT pPIndirectCommandsLayout
+  pure $ (pIndirectCommandsLayout)
+
+-- | A convenience wrapper to make a compatible pair of calls to
+-- 'createIndirectCommandsLayoutEXT' and 'destroyIndirectCommandsLayoutEXT'
+--
+-- To ensure that 'destroyIndirectCommandsLayoutEXT' 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.
+--
+withIndirectCommandsLayoutEXT :: forall a io r . (Extendss IndirectCommandsLayoutCreateInfoEXT a, PokeChain a, MonadIO io) => Device -> IndirectCommandsLayoutCreateInfoEXT a -> Maybe AllocationCallbacks -> (io IndirectCommandsLayoutEXT -> (IndirectCommandsLayoutEXT -> io ()) -> r) -> r
+withIndirectCommandsLayoutEXT device pCreateInfo pAllocator b =
+  b (createIndirectCommandsLayoutEXT device pCreateInfo pAllocator)
+    (\(o0) -> destroyIndirectCommandsLayoutEXT device o0 pAllocator)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkDestroyIndirectCommandsLayoutEXT
+  :: FunPtr (Ptr Device_T -> IndirectCommandsLayoutEXT -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> IndirectCommandsLayoutEXT -> Ptr AllocationCallbacks -> IO ()
+
+-- | vkDestroyIndirectCommandsLayoutEXT - Destroy an indirect commands layout
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-11114#
+--     All submitted commands that refer to @indirectCommandsLayout@ /must/
+--     have completed execution
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-11115#
+--     If 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
+--     provided when @indirectCommandsLayout@ was created, a compatible set
+--     of callbacks /must/ be provided here
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-11116#
+--     If no 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
+--     provided when @indirectCommandsLayout@ was created, @pAllocator@
+--     /must/ be @NULL@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutEXT-device-parameter# @device@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-parameter#
+--     If @indirectCommandsLayout@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @indirectCommandsLayout@
+--     /must/ be a valid
+--     'Vulkan.Extensions.Handles.IndirectCommandsLayoutEXT' handle
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutEXT-pAllocator-parameter# If
+--     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
+--     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
+--     structure
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutEXT-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_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Handles.Device',
+-- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutEXT'
+destroyIndirectCommandsLayoutEXT :: forall io
+                                  . (MonadIO io)
+                                 => -- | @device@ is the logical device that destroys the layout.
+                                    Device
+                                 -> -- | @indirectCommandsLayout@ is the layout to destroy.
+                                    IndirectCommandsLayoutEXT
+                                 -> -- | @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 ()
+destroyIndirectCommandsLayoutEXT device
+                                   indirectCommandsLayout
+                                   allocator = liftIO . evalContT $ do
+  let vkDestroyIndirectCommandsLayoutEXTPtr = pVkDestroyIndirectCommandsLayoutEXT (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkDestroyIndirectCommandsLayoutEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyIndirectCommandsLayoutEXT is null" Nothing Nothing
+  let vkDestroyIndirectCommandsLayoutEXT' = mkVkDestroyIndirectCommandsLayoutEXT vkDestroyIndirectCommandsLayoutEXTPtr
+  pAllocator <- case (allocator) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  lift $ traceAroundEvent "vkDestroyIndirectCommandsLayoutEXT" (vkDestroyIndirectCommandsLayoutEXT'
+                                                                  (deviceHandle (device))
+                                                                  (indirectCommandsLayout)
+                                                                  pAllocator)
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCreateIndirectExecutionSetEXT
+  :: FunPtr (Ptr Device_T -> Ptr IndirectExecutionSetCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr IndirectExecutionSetEXT -> IO Result) -> Ptr Device_T -> Ptr IndirectExecutionSetCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr IndirectExecutionSetEXT -> IO Result
+
+-- | vkCreateIndirectExecutionSetEXT - Create an indirect execution set
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCreateIndirectExecutionSetEXT-deviceGeneratedCommands-11013#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCreateIndirectExecutionSetEXT-device-parameter# @device@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkCreateIndirectExecutionSetEXT-pCreateInfo-parameter#
+--     @pCreateInfo@ /must/ be a valid pointer to a valid
+--     'IndirectExecutionSetCreateInfoEXT' structure
+--
+-- -   #VUID-vkCreateIndirectExecutionSetEXT-pAllocator-parameter# If
+--     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
+--     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
+--     structure
+--
+-- -   #VUID-vkCreateIndirectExecutionSetEXT-pIndirectExecutionSet-parameter#
+--     @pIndirectExecutionSet@ /must/ be a valid pointer to a
+--     'Vulkan.Extensions.Handles.IndirectExecutionSetEXT' 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_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Handles.Device', 'IndirectExecutionSetCreateInfoEXT',
+-- 'Vulkan.Extensions.Handles.IndirectExecutionSetEXT'
+createIndirectExecutionSetEXT :: forall io
+                               . (MonadIO io)
+                              => -- | @device@ is the logical device that creates the indirect execution set.
+                                 Device
+                              -> -- | @pCreateInfo@ is a pointer to a 'IndirectExecutionSetCreateInfoEXT'
+                                 -- structure containing parameters affecting creation of the indirect
+                                 -- execution set.
+                                 IndirectExecutionSetCreateInfoEXT
+                              -> -- | @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 (IndirectExecutionSetEXT)
+createIndirectExecutionSetEXT device
+                                createInfo
+                                allocator = liftIO . evalContT $ do
+  let vkCreateIndirectExecutionSetEXTPtr = pVkCreateIndirectExecutionSetEXT (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCreateIndirectExecutionSetEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateIndirectExecutionSetEXT is null" Nothing Nothing
+  let vkCreateIndirectExecutionSetEXT' = mkVkCreateIndirectExecutionSetEXT vkCreateIndirectExecutionSetEXTPtr
+  pCreateInfo <- ContT $ withCStruct (createInfo)
+  pAllocator <- case (allocator) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  pPIndirectExecutionSet <- ContT $ bracket (callocBytes @IndirectExecutionSetEXT 8) free
+  r <- lift $ traceAroundEvent "vkCreateIndirectExecutionSetEXT" (vkCreateIndirectExecutionSetEXT'
+                                                                    (deviceHandle (device))
+                                                                    pCreateInfo
+                                                                    pAllocator
+                                                                    (pPIndirectExecutionSet))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pIndirectExecutionSet <- lift $ peek @IndirectExecutionSetEXT pPIndirectExecutionSet
+  pure $ (pIndirectExecutionSet)
+
+-- | A convenience wrapper to make a compatible pair of calls to
+-- 'createIndirectExecutionSetEXT' and 'destroyIndirectExecutionSetEXT'
+--
+-- To ensure that 'destroyIndirectExecutionSetEXT' 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.
+--
+withIndirectExecutionSetEXT :: forall io r . MonadIO io => Device -> IndirectExecutionSetCreateInfoEXT -> Maybe AllocationCallbacks -> (io IndirectExecutionSetEXT -> (IndirectExecutionSetEXT -> io ()) -> r) -> r
+withIndirectExecutionSetEXT device pCreateInfo pAllocator b =
+  b (createIndirectExecutionSetEXT device pCreateInfo pAllocator)
+    (\(o0) -> destroyIndirectExecutionSetEXT device o0 pAllocator)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkDestroyIndirectExecutionSetEXT
+  :: FunPtr (Ptr Device_T -> IndirectExecutionSetEXT -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> IndirectExecutionSetEXT -> Ptr AllocationCallbacks -> IO ()
+
+-- | vkDestroyIndirectExecutionSetEXT - Destroy an indirect execution set
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkDestroyIndirectExecutionSetEXT-indirectExecutionSet-11025#
+--     All submitted commands that refer to @indirectExecutionSet@ /must/
+--     have completed execution
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkDestroyIndirectExecutionSetEXT-device-parameter# @device@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkDestroyIndirectExecutionSetEXT-indirectExecutionSet-parameter#
+--     If @indirectExecutionSet@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @indirectExecutionSet@
+--     /must/ be a valid
+--     'Vulkan.Extensions.Handles.IndirectExecutionSetEXT' handle
+--
+-- -   #VUID-vkDestroyIndirectExecutionSetEXT-pAllocator-parameter# If
+--     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
+--     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
+--     structure
+--
+-- -   #VUID-vkDestroyIndirectExecutionSetEXT-indirectExecutionSet-parent#
+--     If @indirectExecutionSet@ is a valid handle, it /must/ have been
+--     created, allocated, or retrieved from @device@
+--
+-- == Host Synchronization
+--
+-- -   Host access to @indirectExecutionSet@ /must/ be externally
+--     synchronized
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Handles.Device',
+-- 'Vulkan.Extensions.Handles.IndirectExecutionSetEXT'
+destroyIndirectExecutionSetEXT :: forall io
+                                . (MonadIO io)
+                               => -- | @device@ is the logical device that owns the indirect execution set.
+                                  Device
+                               -> -- | @indirectExecutionSet@ is the indirect execution set to destroy.
+                                  IndirectExecutionSetEXT
+                               -> -- | @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 ()
+destroyIndirectExecutionSetEXT device
+                                 indirectExecutionSet
+                                 allocator = liftIO . evalContT $ do
+  let vkDestroyIndirectExecutionSetEXTPtr = pVkDestroyIndirectExecutionSetEXT (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkDestroyIndirectExecutionSetEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyIndirectExecutionSetEXT is null" Nothing Nothing
+  let vkDestroyIndirectExecutionSetEXT' = mkVkDestroyIndirectExecutionSetEXT vkDestroyIndirectExecutionSetEXTPtr
+  pAllocator <- case (allocator) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  lift $ traceAroundEvent "vkDestroyIndirectExecutionSetEXT" (vkDestroyIndirectExecutionSetEXT'
+                                                                (deviceHandle (device))
+                                                                (indirectExecutionSet)
+                                                                pAllocator)
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkUpdateIndirectExecutionSetPipelineEXT
+  :: FunPtr (Ptr Device_T -> IndirectExecutionSetEXT -> Word32 -> Ptr WriteIndirectExecutionSetPipelineEXT -> IO ()) -> Ptr Device_T -> IndirectExecutionSetEXT -> Word32 -> Ptr WriteIndirectExecutionSetPipelineEXT -> IO ()
+
+-- | vkUpdateIndirectExecutionSetPipelineEXT - Update the contents of an
+-- indirect execution set
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-indirectExecutionSet-11035#
+--     @indirectExecutionSet@ /must/ have been created with type
+--     'INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT'
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-executionSetWriteCount-11037#
+--     @executionSetWriteCount@ /must/ be less than or equal to
+--     'IndirectExecutionSetPipelineInfoEXT'::@maxPipelineCount@
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-pExecutionSetWrites-11042#
+--     Each element in the @pExecutionSetWrites@ array must have a unique
+--     'WriteIndirectExecutionSetPipelineEXT'::@index@
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-None-11038# Each
+--     member of the Indirect Execution Set referenced by the update
+--     command /must/ not be in use by the device
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-None-11039# The layout
+--     of each pipeline in @pExecutionSetWrites@ /must/ be
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>
+--     with the @initialPipeline@ used to create the Indirect Execution Set
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-None-11040# Each
+--     pipeline in the Indirect Execution Set /must/ have identically
+--     defined static and dynamic state values to the @initialPipeline@
+--     used to create the Indirect Execution Set
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11147#
+--     Each pipeline in the Indirect Execution Set /must/ have identically
+--     defined
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-fragmentoutput fragment outputs interface>
+--     to the @initialPipeline@ used to create the Indirect Execution Set
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11152#
+--     Each pipeline in the Indirect Execution Set /must/ match the
+--     @initialPipeline@ used to create the Indirect Execution Set in its
+--     included shader stages
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11098#
+--     Each pipeline in the Indirect Execution Set /must/ match the
+--     @initialPipeline@ used to create the Indirect Execution Set in its
+--     use of @FragDepth@
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11086#
+--     Each pipeline in the Indirect Execution Set /must/ match the
+--     @initialPipeline@ used to create the Indirect Execution Set in its
+--     use of 'Vulkan.Core10.FundamentalTypes.SampleMask'
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11085#
+--     Each pipeline in the Indirect Execution Set /must/ match the
+--     @initialPipeline@ used to create the Indirect Execution Set in its
+--     use of @StencilExportEXT@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-device-parameter#
+--     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-indirectExecutionSet-parameter#
+--     @indirectExecutionSet@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.IndirectExecutionSetEXT' handle
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-pExecutionSetWrites-parameter#
+--     @pExecutionSetWrites@ /must/ be a valid pointer to an array of
+--     @executionSetWriteCount@ valid
+--     'WriteIndirectExecutionSetPipelineEXT' structures
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-executionSetWriteCount-arraylength#
+--     @executionSetWriteCount@ /must/ be greater than @0@
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetPipelineEXT-indirectExecutionSet-parent#
+--     @indirectExecutionSet@ /must/ have been created, allocated, or
+--     retrieved from @device@
+--
+-- == Host Synchronization
+--
+-- -   Host access to @indirectExecutionSet@ /must/ be externally
+--     synchronized
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.Handles.Device',
+-- 'Vulkan.Extensions.Handles.IndirectExecutionSetEXT',
+-- 'WriteIndirectExecutionSetPipelineEXT'
+updateIndirectExecutionSetPipelineEXT :: forall io
+                                       . (MonadIO io)
+                                      => -- | @device@ is the logical device that owns the indirect execution set.
+                                         Device
+                                      -> -- | @indirectExecutionSet@ is the indirect execution set being updated.
+                                         IndirectExecutionSetEXT
+                                      -> -- | @pExecutionSetWrites@ is a pointer to an array of
+                                         -- 'WriteIndirectExecutionSetPipelineEXT' structures describing the
+                                         -- elements to update.
+                                         ("executionSetWrites" ::: Vector WriteIndirectExecutionSetPipelineEXT)
+                                      -> io ()
+updateIndirectExecutionSetPipelineEXT device
+                                        indirectExecutionSet
+                                        executionSetWrites = liftIO . evalContT $ do
+  let vkUpdateIndirectExecutionSetPipelineEXTPtr = pVkUpdateIndirectExecutionSetPipelineEXT (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkUpdateIndirectExecutionSetPipelineEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkUpdateIndirectExecutionSetPipelineEXT is null" Nothing Nothing
+  let vkUpdateIndirectExecutionSetPipelineEXT' = mkVkUpdateIndirectExecutionSetPipelineEXT vkUpdateIndirectExecutionSetPipelineEXTPtr
+  pPExecutionSetWrites <- ContT $ allocaBytes @WriteIndirectExecutionSetPipelineEXT ((Data.Vector.length (executionSetWrites)) * 32)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPExecutionSetWrites `plusPtr` (32 * (i)) :: Ptr WriteIndirectExecutionSetPipelineEXT) (e)) (executionSetWrites)
+  lift $ traceAroundEvent "vkUpdateIndirectExecutionSetPipelineEXT" (vkUpdateIndirectExecutionSetPipelineEXT'
+                                                                       (deviceHandle (device))
+                                                                       (indirectExecutionSet)
+                                                                       ((fromIntegral (Data.Vector.length $ (executionSetWrites)) :: Word32))
+                                                                       (pPExecutionSetWrites))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkUpdateIndirectExecutionSetShaderEXT
+  :: FunPtr (Ptr Device_T -> IndirectExecutionSetEXT -> Word32 -> Ptr WriteIndirectExecutionSetShaderEXT -> IO ()) -> Ptr Device_T -> IndirectExecutionSetEXT -> Word32 -> Ptr WriteIndirectExecutionSetShaderEXT -> IO ()
+
+-- | vkUpdateIndirectExecutionSetShaderEXT - Update the contents of an
+-- indirect execution set
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetShaderEXT-indirectExecutionSet-11041#
+--     @indirectExecutionSet@ /must/ have been created with type
+--     'INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT'
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetShaderEXT-pExecutionSetWrites-11043#
+--     Each element in the @pExecutionSetWrites@ array must have a unique
+--     'WriteIndirectExecutionSetShaderEXT'::@index@
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetShaderEXT-None-11044# Each member
+--     of the Indirect Execution Set referenced by the update command
+--     /must/ not be in use by the device
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetShaderEXT-pExecutionSetWrites-11140#
+--     The descriptor layout of each shader in @pExecutionSetWrites@ /must/
+--     be
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>
+--     with the initial layout info used to create the Indirect Execution
+--     Set
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetShaderEXT-None-11148# Each
+--     fragment shader element in the Indirect Execution Set /must/ have
+--     identically defined
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-fragmentoutput fragment outputs interface>
+--     to the initial shader state used to create the Indirect Execution
+--     Set
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetShaderEXT-FragDepth-11054# Each
+--     fragment shader element in the Indirect Execution Set /must/ match
+--     the initial shader state used to create the Indirect Execution Set
+--     in its use of @FragDepth@
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetShaderEXT-SampleMask-11050# Each
+--     fragment shader element in the Indirect Execution Set /must/ match
+--     the initial shader state used to create the Indirect Execution Set
+--     in its use of 'Vulkan.Core10.FundamentalTypes.SampleMask'
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetShaderEXT-StencilExportEXT-11003#
+--     Each fragment shader element in the Indirect Execution Set /must/
+--     match the initial shader state used to create the Indirect Execution
+--     Set in its use of @StencilExportEXT@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetShaderEXT-device-parameter#
+--     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetShaderEXT-indirectExecutionSet-parameter#
+--     @indirectExecutionSet@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.IndirectExecutionSetEXT' handle
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetShaderEXT-pExecutionSetWrites-parameter#
+--     @pExecutionSetWrites@ /must/ be a valid pointer to an array of
+--     @executionSetWriteCount@ valid 'WriteIndirectExecutionSetShaderEXT'
+--     structures
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetShaderEXT-executionSetWriteCount-arraylength#
+--     @executionSetWriteCount@ /must/ be greater than @0@
+--
+-- -   #VUID-vkUpdateIndirectExecutionSetShaderEXT-indirectExecutionSet-parent#
+--     @indirectExecutionSet@ /must/ have been created, allocated, or
+--     retrieved from @device@
+--
+-- == Host Synchronization
+--
+-- -   Host access to @indirectExecutionSet@ /must/ be externally
+--     synchronized
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.Handles.Device',
+-- 'Vulkan.Extensions.Handles.IndirectExecutionSetEXT',
+-- 'WriteIndirectExecutionSetShaderEXT'
+updateIndirectExecutionSetShaderEXT :: forall io
+                                     . (MonadIO io)
+                                    => -- | @device@ is the logical device that owns the indirect execution set.
+                                       Device
+                                    -> -- | @indirectExecutionSet@ is the indirect execution set being updated.
+                                       IndirectExecutionSetEXT
+                                    -> -- | @pExecutionSetWrites@ is a pointer to an array of
+                                       -- 'WriteIndirectExecutionSetShaderEXT' structures describing the elements
+                                       -- to update.
+                                       ("executionSetWrites" ::: Vector WriteIndirectExecutionSetShaderEXT)
+                                    -> io ()
+updateIndirectExecutionSetShaderEXT device
+                                      indirectExecutionSet
+                                      executionSetWrites = liftIO . evalContT $ do
+  let vkUpdateIndirectExecutionSetShaderEXTPtr = pVkUpdateIndirectExecutionSetShaderEXT (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkUpdateIndirectExecutionSetShaderEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkUpdateIndirectExecutionSetShaderEXT is null" Nothing Nothing
+  let vkUpdateIndirectExecutionSetShaderEXT' = mkVkUpdateIndirectExecutionSetShaderEXT vkUpdateIndirectExecutionSetShaderEXTPtr
+  pPExecutionSetWrites <- ContT $ allocaBytes @WriteIndirectExecutionSetShaderEXT ((Data.Vector.length (executionSetWrites)) * 32)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPExecutionSetWrites `plusPtr` (32 * (i)) :: Ptr WriteIndirectExecutionSetShaderEXT) (e)) (executionSetWrites)
+  lift $ traceAroundEvent "vkUpdateIndirectExecutionSetShaderEXT" (vkUpdateIndirectExecutionSetShaderEXT'
+                                                                     (deviceHandle (device))
+                                                                     (indirectExecutionSet)
+                                                                     ((fromIntegral (Data.Vector.length $ (executionSetWrites)) :: Word32))
+                                                                     (pPExecutionSetWrites))
+  pure $ ()
+
+
+-- No documentation found for TopLevel "VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT"
+pattern PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT = PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV
+
+
+-- No documentation found for TopLevel "VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT"
+pattern ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT = ACCESS_COMMAND_PREPROCESS_READ_BIT_NV
+
+
+-- No documentation found for TopLevel "VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT"
+pattern ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT = ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV
+
+
+-- | VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT - Structure
+-- describing the device-generated compute features that can be supported
+-- by an implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT' 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. 'PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT' /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_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT = PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
+  { -- | #features-deviceGeneratedCommands# @deviceGeneratedCommands@ indicates
+    -- whether the implementation supports functionality to generate commands
+    -- on the device.
+    deviceGeneratedCommands :: Bool
+  , -- | #features-dynamicGeneratedPipelineLayout#
+    -- @dynamicGeneratedPipelineLayout@ indicates the implementation allows the
+    -- @pipelineLayout@ member of 'IndirectCommandsLayoutCreateInfoEXT' to be
+    -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' and
+    -- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo' /can/ be chained
+    -- off those structures\' @pNext@ instead.
+    dynamicGeneratedPipelineLayout :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
+
+instance ToCStruct PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (deviceGeneratedCommands))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (dynamicGeneratedPipelineLayout))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_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))
+    f
+
+instance FromCStruct PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT where
+  peekCStruct p = do
+    deviceGeneratedCommands <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    dynamicGeneratedPipelineLayout <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pure $ PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
+             (bool32ToBool deviceGeneratedCommands)
+             (bool32ToBool dynamicGeneratedPipelineLayout)
+
+instance Storable PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT where
+  zero = PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT - Structure
+-- describing push descriptor limits that can be supported by an
+-- implementation
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT' 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_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'IndirectCommandsInputModeFlagsEXT',
+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT = PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
+  { -- | #limits-maxIndirectPipelineCount# @maxIndirectPipelineCount@ is the
+    -- maximum number of pipelines passed to 'createIndirectExecutionSetEXT'.
+    maxIndirectPipelineCount :: Word32
+  , -- | #limits-maxIndirectShaderObjectCount# @maxIndirectShaderObjectCount@ is
+    -- the maximum number of shader objects passed to
+    -- 'createIndirectExecutionSetEXT'. If this value is zero, binding shader
+    -- objects indirectly is not supported.
+    maxIndirectShaderObjectCount :: Word32
+  , -- | #limits-maxIndirectSequenceCount# @maxIndirectSequenceCount@ is the
+    -- maximum number of sequences in 'GeneratedCommandsInfoEXT' and in
+    -- 'GeneratedCommandsMemoryRequirementsInfoEXT'.
+    maxIndirectSequenceCount :: Word32
+  , -- | #limits-maxIndirectCommandsTokenCount# @maxIndirectCommandsTokenCount@
+    -- is the maximum number of tokens in
+    -- 'IndirectCommandsLayoutCreateInfoEXT'.
+    maxIndirectCommandsTokenCount :: Word32
+  , -- | #limits-maxIndirectCommandsTokenOffset# @maxIndirectCommandsTokenOffset@
+    -- is the maximum offset in 'IndirectCommandsLayoutTokenEXT'.
+    maxIndirectCommandsTokenOffset :: Word32
+  , -- | #limits-maxIndirectCommandsIndirectStride#
+    -- @maxIndirectCommandsIndirectStride@ is the maximum stream stride in
+    -- 'IndirectCommandsLayoutCreateInfoEXT'.
+    maxIndirectCommandsIndirectStride :: Word32
+  , -- | #limits-supportedIndirectCommandsInputModes#
+    -- @supportedIndirectCommandsInputModes@ indicates the supported input
+    -- modes.
+    supportedIndirectCommandsInputModes :: IndirectCommandsInputModeFlagsEXT
+  , -- | #limits-supportedIndirectCommandsShaderStages#
+    -- @supportedIndirectCommandsShaderStages@ indicates the stages which /can/
+    -- be used to generate indirect commands. Implementations are required to
+    -- support, at minimum:
+    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',
+    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',
+    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT'.
+    supportedIndirectCommandsShaderStages :: ShaderStageFlags
+  , -- | #limits-supportedIndirectCommandsShaderStagesPipelineBinding#
+    -- @supportedIndirectCommandsShaderStagesPipelineBinding@ indicates the
+    -- stages which /can/ be used within indirect execution sets for indirectly
+    -- binding shader stages using pipelines.
+    supportedIndirectCommandsShaderStagesPipelineBinding :: ShaderStageFlags
+  , -- | #limits-supportedIndirectCommandsShaderStagesShaderBinding#
+    -- @supportedIndirectCommandsShaderStagesShaderBinding@ indicates the
+    -- stages which /can/ be used within indirect execution sets for indirectly
+    -- binding shader stages using shader objects.
+    supportedIndirectCommandsShaderStagesShaderBinding :: ShaderStageFlags
+  , -- | #limits-deviceGeneratedCommandsTransformFeedback#
+    -- @deviceGeneratedCommandsTransformFeedback@ indicates whether the
+    -- implementation supports interactions with @VK_EXT_transform_feedback@
+    -- for pipelines not created with
+    -- 'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT'.
+    deviceGeneratedCommandsTransformFeedback :: Bool
+  , -- | #limits-deviceGeneratedCommandsMultiDrawIndirectCount#
+    -- @deviceGeneratedCommandsMultiDrawIndirectCount@ indicates whether the
+    -- implementation supports COUNT variants of multi-draw indirect tokens.
+    deviceGeneratedCommandsMultiDrawIndirectCount :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT)
+#endif
+deriving instance Show PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
+
+instance ToCStruct PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT where
+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxIndirectPipelineCount)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxIndirectShaderObjectCount)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxIndirectSequenceCount)
+    poke ((p `plusPtr` 28 :: Ptr Word32)) (maxIndirectCommandsTokenCount)
+    poke ((p `plusPtr` 32 :: Ptr Word32)) (maxIndirectCommandsTokenOffset)
+    poke ((p `plusPtr` 36 :: Ptr Word32)) (maxIndirectCommandsIndirectStride)
+    poke ((p `plusPtr` 40 :: Ptr IndirectCommandsInputModeFlagsEXT)) (supportedIndirectCommandsInputModes)
+    poke ((p `plusPtr` 44 :: Ptr ShaderStageFlags)) (supportedIndirectCommandsShaderStages)
+    poke ((p `plusPtr` 48 :: Ptr ShaderStageFlags)) (supportedIndirectCommandsShaderStagesPipelineBinding)
+    poke ((p `plusPtr` 52 :: Ptr ShaderStageFlags)) (supportedIndirectCommandsShaderStagesShaderBinding)
+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (deviceGeneratedCommandsTransformFeedback))
+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (deviceGeneratedCommandsMultiDrawIndirectCount))
+    f
+  cStructSize = 64
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT)
+    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 IndirectCommandsInputModeFlagsEXT)) (zero)
+    poke ((p `plusPtr` 44 :: Ptr ShaderStageFlags)) (zero)
+    poke ((p `plusPtr` 48 :: Ptr ShaderStageFlags)) (zero)
+    poke ((p `plusPtr` 52 :: Ptr ShaderStageFlags)) (zero)
+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT where
+  peekCStruct p = do
+    maxIndirectPipelineCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    maxIndirectShaderObjectCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    maxIndirectSequenceCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    maxIndirectCommandsTokenCount <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
+    maxIndirectCommandsTokenOffset <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
+    maxIndirectCommandsIndirectStride <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
+    supportedIndirectCommandsInputModes <- peek @IndirectCommandsInputModeFlagsEXT ((p `plusPtr` 40 :: Ptr IndirectCommandsInputModeFlagsEXT))
+    supportedIndirectCommandsShaderStages <- peek @ShaderStageFlags ((p `plusPtr` 44 :: Ptr ShaderStageFlags))
+    supportedIndirectCommandsShaderStagesPipelineBinding <- peek @ShaderStageFlags ((p `plusPtr` 48 :: Ptr ShaderStageFlags))
+    supportedIndirectCommandsShaderStagesShaderBinding <- peek @ShaderStageFlags ((p `plusPtr` 52 :: Ptr ShaderStageFlags))
+    deviceGeneratedCommandsTransformFeedback <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))
+    deviceGeneratedCommandsMultiDrawIndirectCount <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))
+    pure $ PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
+             maxIndirectPipelineCount
+             maxIndirectShaderObjectCount
+             maxIndirectSequenceCount
+             maxIndirectCommandsTokenCount
+             maxIndirectCommandsTokenOffset
+             maxIndirectCommandsIndirectStride
+             supportedIndirectCommandsInputModes
+             supportedIndirectCommandsShaderStages
+             supportedIndirectCommandsShaderStagesPipelineBinding
+             supportedIndirectCommandsShaderStagesShaderBinding
+             (bool32ToBool deviceGeneratedCommandsTransformFeedback)
+             (bool32ToBool deviceGeneratedCommandsMultiDrawIndirectCount)
+
+instance Storable PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT where
+  sizeOf ~_ = 64
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT where
+  zero = PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkGeneratedCommandsPipelineInfoEXT - Structure specifying a pipeline for
+-- use with indirect command preprocessing
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.Handles.Pipeline',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data GeneratedCommandsPipelineInfoEXT = GeneratedCommandsPipelineInfoEXT
+  { -- | @pipeline@ is a valid pipeline object.
+    --
+    -- #VUID-VkGeneratedCommandsPipelineInfoEXT-pipeline-parameter# @pipeline@
+    -- /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle
+    pipeline :: Pipeline }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (GeneratedCommandsPipelineInfoEXT)
+#endif
+deriving instance Show GeneratedCommandsPipelineInfoEXT
+
+instance ToCStruct GeneratedCommandsPipelineInfoEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p GeneratedCommandsPipelineInfoEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Pipeline)) (pipeline)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Pipeline)) (zero)
+    f
+
+instance FromCStruct GeneratedCommandsPipelineInfoEXT where
+  peekCStruct p = do
+    pipeline <- peek @Pipeline ((p `plusPtr` 16 :: Ptr Pipeline))
+    pure $ GeneratedCommandsPipelineInfoEXT
+             pipeline
+
+instance Storable GeneratedCommandsPipelineInfoEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero GeneratedCommandsPipelineInfoEXT where
+  zero = GeneratedCommandsPipelineInfoEXT
+           zero
+
+
+-- | VkGeneratedCommandsShaderInfoEXT - Structure specifying shader objects
+-- for use with indirect command preprocessing
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Extensions.Handles.ShaderEXT',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data GeneratedCommandsShaderInfoEXT = GeneratedCommandsShaderInfoEXT
+  { -- | @pShaders@ is a pointer to an array of shader objects.
+    --
+    -- #VUID-VkGeneratedCommandsShaderInfoEXT-pShaders-11127# @pShaders@ /must/
+    -- not contain more than one shader object for a given
+    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' stage
+    --
+    -- #VUID-VkGeneratedCommandsShaderInfoEXT-pShaders-parameter# @pShaders@
+    -- /must/ be a valid pointer to an array of @shaderCount@ valid
+    -- 'Vulkan.Extensions.Handles.ShaderEXT' handles
+    shaders :: Vector ShaderEXT }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (GeneratedCommandsShaderInfoEXT)
+#endif
+deriving instance Show GeneratedCommandsShaderInfoEXT
+
+instance ToCStruct GeneratedCommandsShaderInfoEXT where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p GeneratedCommandsShaderInfoEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (shaders)) :: Word32))
+    pPShaders' <- ContT $ allocaBytes @ShaderEXT ((Data.Vector.length (shaders)) * 8)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPShaders' `plusPtr` (8 * (i)) :: Ptr ShaderEXT) (e)) (shaders)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ShaderEXT))) (pPShaders')
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct GeneratedCommandsShaderInfoEXT where
+  peekCStruct p = do
+    shaderCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pShaders <- peek @(Ptr ShaderEXT) ((p `plusPtr` 24 :: Ptr (Ptr ShaderEXT)))
+    pShaders' <- generateM (fromIntegral shaderCount) (\i -> peek @ShaderEXT ((pShaders `advancePtrBytes` (8 * (i)) :: Ptr ShaderEXT)))
+    pure $ GeneratedCommandsShaderInfoEXT
+             pShaders'
+
+instance Zero GeneratedCommandsShaderInfoEXT where
+  zero = GeneratedCommandsShaderInfoEXT
+           mempty
+
+
+-- | VkGeneratedCommandsMemoryRequirementsInfoEXT - Structure specifying
+-- parameters for the reservation of preprocess buffer space
+--
+-- = Description
+--
+-- If the action command token for the layout is not a COUNT-type
+-- multi-draw indirect token, @maxDrawCount@ is ignored.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-maxSequencesCount-11009#
+--     @maxSequencesCount@ /must/ be less or equal to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT'::@maxIndirectSequenceCount@
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-11010#
+--     If @indirectCommandsLayout@ was created with a token sequence that
+--     contained the 'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT'
+--     token, @indirectExecutionSet@ /must/ not be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-11151#
+--     If @indirectCommandsLayout@ was created with a token sequence that
+--     contained the 'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT'
+--     token, the shader stages used to create the initial shader state of
+--     @indirectExecutionSet@ /must/ equal the
+--     'IndirectCommandsExecutionSetTokenEXT'::@shaderStages@ used to
+--     create @indirectCommandsLayout@
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-11011#
+--     If @indirectCommandsLayout@ was not created with a token sequence
+--     that contained the 'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT'
+--     token, @indirectExecutionSet@ /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-maxDrawCount-11146#
+--     When not ignored, @maxDrawCount@ × @maxSequenceCount@ /must/ be less
+--     than 2^24
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectExecutionSet-11012#
+--     If @indirectExecutionSet@ is
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', either a
+--     'GeneratedCommandsPipelineInfoEXT' or a
+--     'GeneratedCommandsShaderInfoEXT' /must/ be included in the @pNext@
+--     chain
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-sType-sType#
+--     @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT'
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-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
+--     'GeneratedCommandsPipelineInfoEXT' or
+--     'GeneratedCommandsShaderInfoEXT'
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-sType-unique# The
+--     @sType@ value of each struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectExecutionSet-parameter#
+--     If @indirectExecutionSet@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @indirectExecutionSet@
+--     /must/ be a valid
+--     'Vulkan.Extensions.Handles.IndirectExecutionSetEXT' handle
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-parameter#
+--     @indirectCommandsLayout@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.IndirectCommandsLayoutEXT' handle
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-commonparent#
+--     Both of @indirectCommandsLayout@, and @indirectExecutionSet@ 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_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutEXT',
+-- 'Vulkan.Extensions.Handles.IndirectExecutionSetEXT',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'getGeneratedCommandsMemoryRequirementsEXT'
+data GeneratedCommandsMemoryRequirementsInfoEXT (es :: [Type]) = GeneratedCommandsMemoryRequirementsInfoEXT
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @indirectExecutionSet@ is the indirect execution set to be used for
+    -- binding shaders.
+    indirectExecutionSet :: IndirectExecutionSetEXT
+  , -- | @indirectCommandsLayout@ is the
+    -- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutEXT' that this buffer
+    -- memory is intended to be used with.
+    indirectCommandsLayout :: IndirectCommandsLayoutEXT
+  , -- | @maxSequenceCount@ is the maximum number of sequences that this buffer
+    -- memory can be used with.
+    maxSequenceCount :: Word32
+  , -- | @maxDrawCount@ is the maximum number of indirect draws that can be
+    -- executed by any COUNT-type multi-draw indirect tokens. The draw count in
+    -- the indirect buffer is clamped to this value for these token types.
+    maxDrawCount :: Word32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (GeneratedCommandsMemoryRequirementsInfoEXT (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (GeneratedCommandsMemoryRequirementsInfoEXT es)
+
+instance Extensible GeneratedCommandsMemoryRequirementsInfoEXT where
+  extensibleTypeName = "GeneratedCommandsMemoryRequirementsInfoEXT"
+  setNext GeneratedCommandsMemoryRequirementsInfoEXT{..} next' = GeneratedCommandsMemoryRequirementsInfoEXT{next = next', ..}
+  getNext GeneratedCommandsMemoryRequirementsInfoEXT{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends GeneratedCommandsMemoryRequirementsInfoEXT e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @GeneratedCommandsShaderInfoEXT = Just f
+    | Just Refl <- eqT @e @GeneratedCommandsPipelineInfoEXT = Just f
+    | otherwise = Nothing
+
+instance ( Extendss GeneratedCommandsMemoryRequirementsInfoEXT es
+         , PokeChain es ) => ToCStruct (GeneratedCommandsMemoryRequirementsInfoEXT es) where
+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p GeneratedCommandsMemoryRequirementsInfoEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr IndirectExecutionSetEXT)) (indirectExecutionSet)
+    lift $ poke ((p `plusPtr` 24 :: Ptr IndirectCommandsLayoutEXT)) (indirectCommandsLayout)
+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (maxSequenceCount)
+    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (maxDrawCount)
+    lift $ f
+  cStructSize = 40
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 24 :: Ptr IndirectCommandsLayoutEXT)) (zero)
+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)
+    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)
+    lift $ f
+
+instance ( Extendss GeneratedCommandsMemoryRequirementsInfoEXT es
+         , PeekChain es ) => FromCStruct (GeneratedCommandsMemoryRequirementsInfoEXT es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    indirectExecutionSet <- peek @IndirectExecutionSetEXT ((p `plusPtr` 16 :: Ptr IndirectExecutionSetEXT))
+    indirectCommandsLayout <- peek @IndirectCommandsLayoutEXT ((p `plusPtr` 24 :: Ptr IndirectCommandsLayoutEXT))
+    maxSequenceCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
+    maxDrawCount <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
+    pure $ GeneratedCommandsMemoryRequirementsInfoEXT
+             next
+             indirectExecutionSet
+             indirectCommandsLayout
+             maxSequenceCount
+             maxDrawCount
+
+instance es ~ '[] => Zero (GeneratedCommandsMemoryRequirementsInfoEXT es) where
+  zero = GeneratedCommandsMemoryRequirementsInfoEXT
+           ()
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkIndirectExecutionSetPipelineInfoEXT - Struct specifying parameters of
+-- a newly created indirect execution set containing only pipelines
+--
+-- = Description
+--
+-- The characteristics of @initialPipeline@ will be used to validate all
+-- pipelines added to the set even if they are removed from the set or
+-- destroyed.
+--
+-- When an Indirect Execution Set created with pipelines is used,
+-- @initialPipeline@ constitutes the initial shader state.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkIndirectExecutionSetPipelineInfoEXT-supportedIndirectCommandsShaderStagesPipelineBinding-11015#
+--     If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-supportedIndirectCommandsShaderStagesPipelineBinding ::supportedIndirectCommandsShaderStagesPipelineBinding>
+--     does not contain
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT',
+--     the 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' of
+--     @initialPipeline@ /must/ not be
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE'
+--
+-- -   #VUID-VkIndirectExecutionSetPipelineInfoEXT-supportedIndirectCommandsShaderStagesPipelineBinding-11016#
+--     If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-supportedIndirectCommandsShaderStagesPipelineBinding ::supportedIndirectCommandsShaderStagesPipelineBinding>
+--     does not contain
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',
+--     the 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' of
+--     @initialPipeline@ /must/ not be
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--
+-- -   #VUID-VkIndirectExecutionSetPipelineInfoEXT-supportedIndirectCommandsShaderStagesPipelineBinding-11017#
+--     If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-supportedIndirectCommandsShaderStagesPipelineBinding ::supportedIndirectCommandsShaderStagesPipelineBinding>
+--     does not contain ray tracing stages, the
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' of
+--     @initialPipeline@ /must/ not be
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR'
+--
+-- -   #VUID-VkIndirectExecutionSetPipelineInfoEXT-maxPipelineCount-11018#
+--     @maxPipelineCount@ /must/ be between @1@ and
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT'::@maxIndirectPipelineCount@
+--
+-- -   #VUID-VkIndirectExecutionSetPipelineInfoEXT-initialPipeline-11019#
+--     @initialPipeline@ /must/ not use descriptors of type
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+--
+-- -   #VUID-VkIndirectExecutionSetPipelineInfoEXT-initialPipeline-11153#
+--     @initialPipeline@ /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkIndirectExecutionSetPipelineInfoEXT-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT'
+--
+-- -   #VUID-VkIndirectExecutionSetPipelineInfoEXT-initialPipeline-parameter#
+--     @initialPipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline'
+--     handle
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'IndirectExecutionSetInfoEXT', 'Vulkan.Core10.Handles.Pipeline',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data IndirectExecutionSetPipelineInfoEXT = IndirectExecutionSetPipelineInfoEXT
+  { -- | @initialPipeline@ is the initial pipeline for the set. This pipeline
+    -- will be automatically added to the set at index @0@.
+    initialPipeline :: Pipeline
+  , -- | @maxPipelineCount@ is the maximum number of pipelines stored in the set.
+    maxPipelineCount :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (IndirectExecutionSetPipelineInfoEXT)
+#endif
+deriving instance Show IndirectExecutionSetPipelineInfoEXT
+
+instance ToCStruct IndirectExecutionSetPipelineInfoEXT where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p IndirectExecutionSetPipelineInfoEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Pipeline)) (initialPipeline)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxPipelineCount)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Pipeline)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct IndirectExecutionSetPipelineInfoEXT where
+  peekCStruct p = do
+    initialPipeline <- peek @Pipeline ((p `plusPtr` 16 :: Ptr Pipeline))
+    maxPipelineCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    pure $ IndirectExecutionSetPipelineInfoEXT
+             initialPipeline maxPipelineCount
+
+instance Storable IndirectExecutionSetPipelineInfoEXT where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero IndirectExecutionSetPipelineInfoEXT where
+  zero = IndirectExecutionSetPipelineInfoEXT
+           zero
+           zero
+
+
+-- | VkIndirectExecutionSetShaderLayoutInfoEXT - Struct specifying descriptor
+-- layout parameters of a newly created indirect execution set containing
+-- only shader objects
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkIndirectExecutionSetShaderLayoutInfoEXT-pSetLayouts-11024#
+--     All members of @pSetLayouts@ /must/ not contain descriptors of type
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkIndirectExecutionSetShaderLayoutInfoEXT-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT'
+--
+-- -   #VUID-VkIndirectExecutionSetShaderLayoutInfoEXT-pSetLayouts-parameter#
+--     If @setLayoutCount@ is not @0@, @pSetLayouts@ /must/ be a valid
+--     pointer to an array of @setLayoutCount@ valid or
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' handles
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.Handles.DescriptorSetLayout',
+-- 'IndirectExecutionSetShaderInfoEXT',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data IndirectExecutionSetShaderLayoutInfoEXT = IndirectExecutionSetShaderLayoutInfoEXT
+  { -- | @pSetLayouts@ is a pointer to an array containing
+    -- 'Vulkan.Core10.Handles.DescriptorSetLayout' objects used by the shader
+    -- stage.
+    setLayouts :: Vector DescriptorSetLayout }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (IndirectExecutionSetShaderLayoutInfoEXT)
+#endif
+deriving instance Show IndirectExecutionSetShaderLayoutInfoEXT
+
+instance ToCStruct IndirectExecutionSetShaderLayoutInfoEXT where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p IndirectExecutionSetShaderLayoutInfoEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (setLayouts)) :: Word32))
+    pPSetLayouts' <- ContT $ allocaBytes @DescriptorSetLayout ((Data.Vector.length (setLayouts)) * 8)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPSetLayouts' `plusPtr` (8 * (i)) :: Ptr DescriptorSetLayout) (e)) (setLayouts)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr DescriptorSetLayout))) (pPSetLayouts')
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct IndirectExecutionSetShaderLayoutInfoEXT where
+  peekCStruct p = do
+    setLayoutCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pSetLayouts <- peek @(Ptr DescriptorSetLayout) ((p `plusPtr` 24 :: Ptr (Ptr DescriptorSetLayout)))
+    pSetLayouts' <- generateM (fromIntegral setLayoutCount) (\i -> peek @DescriptorSetLayout ((pSetLayouts `advancePtrBytes` (8 * (i)) :: Ptr DescriptorSetLayout)))
+    pure $ IndirectExecutionSetShaderLayoutInfoEXT
+             pSetLayouts'
+
+instance Zero IndirectExecutionSetShaderLayoutInfoEXT where
+  zero = IndirectExecutionSetShaderLayoutInfoEXT
+           mempty
+
+
+-- | VkIndirectExecutionSetShaderInfoEXT - Struct specifying parameters of a
+-- newly created indirect execution set containing only shader objects
+--
+-- = Description
+--
+-- The characteristics of @pInitialShaders@ will be used to validate all
+-- shaders added to the set even if they are removed from the set or
+-- destroyed.
+--
+-- When an Indirect Execution Set created with shader objects is used,
+-- @pInitialShaders@ constitutes the initial shader state.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-11020# All
+--     members of @pInitialShaders@ /must/ have a @stage@ supported by
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-supportedIndirectCommandsShaderStagesShaderBinding ::supportedIndirectCommandsShaderStagesShaderBinding>
+--
+-- -   #VUID-VkIndirectExecutionSetShaderInfoEXT-maxShaderCount-11021#
+--     @maxShaderCount@ /must/ not be zero
+--
+-- -   #VUID-VkIndirectExecutionSetShaderInfoEXT-maxShaderCount-11022#
+--     @maxShaderCount@ /must/ be less than or equal to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT'::@maxIndirectShaderObjectCount@
+--
+-- -   #VUID-VkIndirectExecutionSetShaderInfoEXT-maxShaderCount-11036#
+--     @maxShaderCount@ /must/ be greater than or equal to @shaderCount@
+--
+-- -   #VUID-VkIndirectExecutionSetShaderInfoEXT-stage-11023# The @stage@
+--     of each element in the @pInitialShaders@ array /must/ be unique
+--
+-- -   #VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-11154#
+--     Each member of @pInitialShaders@ /must/ have been created with
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkIndirectExecutionSetShaderInfoEXT-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT'
+--
+-- -   #VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-parameter#
+--     @pInitialShaders@ /must/ be a valid pointer to an array of
+--     @shaderCount@ valid 'Vulkan.Extensions.Handles.ShaderEXT' handles
+--
+-- -   #VUID-VkIndirectExecutionSetShaderInfoEXT-pSetLayoutInfos-parameter#
+--     If @pSetLayoutInfos@ is not @NULL@, @pSetLayoutInfos@ /must/ be a
+--     valid pointer to an array of @shaderCount@ valid
+--     'IndirectExecutionSetShaderLayoutInfoEXT' structures
+--
+-- -   #VUID-VkIndirectExecutionSetShaderInfoEXT-pPushConstantRanges-parameter#
+--     If @pushConstantRangeCount@ is not @0@, @pPushConstantRanges@ /must/
+--     be a valid pointer to an array of @pushConstantRangeCount@ valid
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' structures
+--
+-- -   #VUID-VkIndirectExecutionSetShaderInfoEXT-shaderCount-arraylength#
+--     @shaderCount@ /must/ be greater than @0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'IndirectExecutionSetInfoEXT',
+-- 'IndirectExecutionSetShaderLayoutInfoEXT',
+-- 'Vulkan.Core10.PipelineLayout.PushConstantRange',
+-- 'Vulkan.Extensions.Handles.ShaderEXT',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data IndirectExecutionSetShaderInfoEXT = IndirectExecutionSetShaderInfoEXT
+  { -- | @pInitialShaders@ is a pointer to an array containing a
+    -- 'Vulkan.Extensions.Handles.ShaderEXT' object for each shader stage that
+    -- will be used in the set. These shaders will be automatically added to
+    -- the set beginning at index @0@.
+    initialShaders :: Vector ShaderEXT
+  , -- | @pSetLayoutInfos@ is a pointer to an array containing a
+    -- 'IndirectExecutionSetShaderLayoutInfoEXT' used by each corresponding
+    -- @pInitialShaders@ shader stage in the set.
+    setLayoutInfos :: Vector IndirectExecutionSetShaderLayoutInfoEXT
+  , -- | @maxShaderCount@ is the maximum number of shader objects stored in the
+    -- set.
+    maxShaderCount :: Word32
+  , -- | @pPushConstantRanges@ is a pointer to the array of
+    -- 'Vulkan.Core10.PipelineLayout.PushConstantRange' ranges used by all
+    -- shaders in the set.
+    pushConstantRanges :: Vector PushConstantRange
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (IndirectExecutionSetShaderInfoEXT)
+#endif
+deriving instance Show IndirectExecutionSetShaderInfoEXT
+
+instance ToCStruct IndirectExecutionSetShaderInfoEXT where
+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p IndirectExecutionSetShaderInfoEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    let pInitialShadersLength = Data.Vector.length $ (initialShaders)
+    let pSetLayoutInfosLength = Data.Vector.length $ (setLayoutInfos)
+    lift $ unless (fromIntegral pSetLayoutInfosLength == pInitialShadersLength || pSetLayoutInfosLength == 0) $
+      throwIO $ IOError Nothing InvalidArgument "" "pSetLayoutInfos and pInitialShaders must have the same length" Nothing Nothing
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral pInitialShadersLength :: Word32))
+    pPInitialShaders' <- ContT $ allocaBytes @ShaderEXT ((Data.Vector.length (initialShaders)) * 8)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPInitialShaders' `plusPtr` (8 * (i)) :: Ptr ShaderEXT) (e)) (initialShaders)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ShaderEXT))) (pPInitialShaders')
+    pSetLayoutInfos'' <- if Data.Vector.null (setLayoutInfos)
+      then pure nullPtr
+      else do
+        pPSetLayoutInfos <- ContT $ allocaBytes @IndirectExecutionSetShaderLayoutInfoEXT (((Data.Vector.length (setLayoutInfos))) * 32)
+        Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPSetLayoutInfos `plusPtr` (32 * (i)) :: Ptr IndirectExecutionSetShaderLayoutInfoEXT) (e) . ($ ())) ((setLayoutInfos))
+        pure $ pPSetLayoutInfos
+    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr IndirectExecutionSetShaderLayoutInfoEXT))) pSetLayoutInfos''
+    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (maxShaderCount)
+    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (pushConstantRanges)) :: Word32))
+    pPPushConstantRanges' <- ContT $ allocaBytes @PushConstantRange ((Data.Vector.length (pushConstantRanges)) * 12)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPPushConstantRanges' `plusPtr` (12 * (i)) :: Ptr PushConstantRange) (e)) (pushConstantRanges)
+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr PushConstantRange))) (pPPushConstantRanges')
+    lift $ f
+  cStructSize = 56
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct IndirectExecutionSetShaderInfoEXT where
+  peekCStruct p = do
+    shaderCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pInitialShaders <- peek @(Ptr ShaderEXT) ((p `plusPtr` 24 :: Ptr (Ptr ShaderEXT)))
+    pInitialShaders' <- generateM (fromIntegral shaderCount) (\i -> peek @ShaderEXT ((pInitialShaders `advancePtrBytes` (8 * (i)) :: Ptr ShaderEXT)))
+    pSetLayoutInfos <- peek @(Ptr IndirectExecutionSetShaderLayoutInfoEXT) ((p `plusPtr` 32 :: Ptr (Ptr IndirectExecutionSetShaderLayoutInfoEXT)))
+    let pSetLayoutInfosLength = if pSetLayoutInfos == nullPtr then 0 else (fromIntegral shaderCount)
+    pSetLayoutInfos' <- generateM pSetLayoutInfosLength (\i -> peekCStruct @IndirectExecutionSetShaderLayoutInfoEXT ((pSetLayoutInfos `advancePtrBytes` (32 * (i)) :: Ptr IndirectExecutionSetShaderLayoutInfoEXT)))
+    maxShaderCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
+    pushConstantRangeCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))
+    pPushConstantRanges <- peek @(Ptr PushConstantRange) ((p `plusPtr` 48 :: Ptr (Ptr PushConstantRange)))
+    pPushConstantRanges' <- generateM (fromIntegral pushConstantRangeCount) (\i -> peekCStruct @PushConstantRange ((pPushConstantRanges `advancePtrBytes` (12 * (i)) :: Ptr PushConstantRange)))
+    pure $ IndirectExecutionSetShaderInfoEXT
+             pInitialShaders'
+             pSetLayoutInfos'
+             maxShaderCount
+             pPushConstantRanges'
+
+instance Zero IndirectExecutionSetShaderInfoEXT where
+  zero = IndirectExecutionSetShaderInfoEXT
+           mempty
+           mempty
+           zero
+           mempty
+
+
+-- | VkIndirectExecutionSetCreateInfoEXT - Structure specifying parameters of
+-- a newly created indirect execution set
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkIndirectExecutionSetCreateInfoEXT-maxIndirectShaderObjectCount-11014#
+--     If
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT'::@maxIndirectShaderObjectCount@
+--     is zero or the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled @type@ /must/ not be
+--     'INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkIndirectExecutionSetCreateInfoEXT-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT'
+--
+-- -   #VUID-VkIndirectExecutionSetCreateInfoEXT-type-parameter# @type@
+--     /must/ be a valid 'IndirectExecutionSetInfoTypeEXT' value
+--
+-- -   #VUID-VkIndirectExecutionSetCreateInfoEXT-pPipelineInfo-parameter#
+--     If @type@ is 'INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT', the
+--     @pPipelineInfo@ member of @info@ /must/ be a valid pointer to a
+--     valid 'IndirectExecutionSetPipelineInfoEXT' structure
+--
+-- -   #VUID-VkIndirectExecutionSetCreateInfoEXT-pShaderInfo-parameter# If
+--     @type@ is 'INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT', the
+--     @pShaderInfo@ member of @info@ /must/ be a valid pointer to a valid
+--     'IndirectExecutionSetShaderInfoEXT' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'IndirectExecutionSetInfoEXT', 'IndirectExecutionSetInfoTypeEXT',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'createIndirectExecutionSetEXT'
+data IndirectExecutionSetCreateInfoEXT = IndirectExecutionSetCreateInfoEXT
+  { -- | @type@ is a 'IndirectExecutionSetInfoTypeEXT' describing the type of set
+    -- being created and determining which field of the @info@ union will be
+    -- used.
+    type' :: IndirectExecutionSetInfoTypeEXT
+  , -- | @info@ is a 'IndirectExecutionSetInfoEXT' union containing layout
+    -- information for the set.
+    info :: IndirectExecutionSetInfoEXT
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (IndirectExecutionSetCreateInfoEXT)
+#endif
+deriving instance Show IndirectExecutionSetCreateInfoEXT
+
+instance ToCStruct IndirectExecutionSetCreateInfoEXT where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p IndirectExecutionSetCreateInfoEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr IndirectExecutionSetInfoTypeEXT)) (type')
+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr IndirectExecutionSetInfoEXT)) (info) . ($ ())
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr IndirectExecutionSetInfoTypeEXT)) (zero)
+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr IndirectExecutionSetInfoEXT)) (zero) . ($ ())
+    lift $ f
+
+instance Zero IndirectExecutionSetCreateInfoEXT where
+  zero = IndirectExecutionSetCreateInfoEXT
+           zero
+           zero
+
+
+-- | VkGeneratedCommandsInfoEXT - Structure specifying parameters for the
+-- generation of commands
+--
+-- = Description
+--
+-- If @sequenceCountAddress@ is not @NULL@, then @maxSequenceCount@ is the
+-- maximum number of sequences that can be executed. The actual number is
+-- @min(maxSequenceCount, *sequenceCountAddress)@. If
+-- @sequenceCountAddress@ is @NULL@, then @maxSequenceCount@ is the exact
+-- number of sequences to execute.
+--
+-- If the action command token for the layout is not a COUNT-type
+-- multi-draw indirect token, @maxDrawCount@ is ignored.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11063# If
+--     'getGeneratedCommandsMemoryRequirementsEXT' returns a non-zero size,
+--     @preprocessAddress@ /must/ not be @NULL@
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11064#
+--     'Vulkan.Core10.Handles.DeviceMemory' objects bound to the underlying
+--     buffer for @preprocessAddress@ /must/ have been allocated using one
+--     of the memory types allowed in the @memoryTypeBits@ member of the
+--     'Vulkan.Core10.MemoryManagement.MemoryRequirements' structure
+--     returned by 'getGeneratedCommandsMemoryRequirementsEXT'
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11065# If
+--     the @indirectCommandsLayout@ uses a token of
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT', then the
+--     @indirectExecutionSet@’s push constant layout /must/ contain the
+--     @updateRange@ specified in 'IndirectCommandsPushConstantTokenEXT'
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11066# If
+--     the @indirectCommandsLayout@ uses a token of
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT', then the
+--     @indirectExecutionSet@’s push constant layout /must/ contain the
+--     @updateRange@ specified in 'IndirectCommandsPushConstantTokenEXT'
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-maxSequenceCount-11067#
+--     @maxSequenceCount@ /must/ be less or equal to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT'::@maxIndirectSequenceCount@
+--     and
+--     'GeneratedCommandsMemoryRequirementsInfoEXT'::@maxSequencesCount@
+--     that was used to determine the @preprocessSize@
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-11068# If
+--     @sequenceCountAddress@ is not @NULL@, the value contained in the
+--     address /must/ be less or equal to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT'::@maxIndirectSequenceCount@
+--     and
+--     'GeneratedCommandsMemoryRequirementsInfoEXT'::@maxSequencesCount@
+--     that was used to determine the @preprocessSize@
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-maxSequenceCount-10246#
+--     @maxSequenceCount@ /must/ not be zero
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11069# The
+--     underlying buffer for @preprocessAddress@ /must/ have the
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT'
+--     bit set in its usage flag
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11070# If the
+--     underlying buffer for @preprocessAddress@ is non-sparse then it
+--     /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11144# If
+--     the @indirectCommandsLayout@ contains a
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT' token, then the
+--     descriptor and push constant layout info provided either by
+--     @pipelineLayout@ or through a
+--     'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo' in @pNext@
+--     of the 'IndirectCommandsLayoutCreateInfoEXT' used to create
+--     @indirectCommandsLayout@ /must/ be
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>
+--     with the descriptor and push constant layout info used by
+--     @indirectExecutionSet@
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11002# If
+--     @indirectCommandsLayout@ was created with a token sequence that
+--     contained the 'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT'
+--     token, the shader stages used to create the initial shader state of
+--     @indirectExecutionSet@ /must/ equal the
+--     'IndirectCommandsExecutionSetTokenEXT'::@shaderStages@ used to
+--     create @indirectCommandsLayout@
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-preprocessSize-11071#
+--     @preprocessSize@ /must/ be greater than or equal to the memory
+--     requirement’s size returned by
+--     'getGeneratedCommandsMemoryRequirementsEXT' using the matching
+--     inputs (@indirectCommandsLayout@, …​) as within this structure
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-11072# The
+--     underlying buffer for @sequenceCountAddress@ /must/ have the
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR'
+--     bit set in its usage flag
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-11073# If
+--     @sequenceCountAddress@ is not @NULL@, @sequenceCountAddress@ /must/
+--     be aligned to @4@
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-indirectAddress-11074#
+--     @indirectAddress@ /must/ be aligned to @4@
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-11075# If the
+--     underlying buffer for @sequenceCountAddress@ is non-sparse then it
+--     /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-indirectAddress-11076#
+--     @indirectAddress@ /must/ not be @NULL@
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-indirectAddressSize-11077#
+--     @indirectAddressSize@ /must/ be greater than zero
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-maxDrawCount-11078# When not
+--     ignored, @maxDrawCount@ × @maxSequenceCount@ /must/ be less than
+--     2^24
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11079# If
+--     @indirectCommandsLayout@ was created using a
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT' token and shader
+--     objects are not bound then the bound graphics pipeline /must/ have
+--     been created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'
+--     in @pDynamicStates@
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11083# If
+--     the token sequence of the passed @indirectCommandsLayout@ contains a
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT' token, the
+--     @indirectExecutionSet@ /must/ not be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-10241# If
+--     the token sequence of the passed @indirectCommandsLayout@ does not
+--     contains a 'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT' token,
+--     the @indirectExecutionSet@ /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-indirectExecutionSet-11080# If
+--     @indirectExecutionSet@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     a 'GeneratedCommandsPipelineInfoEXT' or
+--     'GeneratedCommandsShaderInfoEXT' /must/ be included in the @pNext@
+--     chain
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT'
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-shaderStages-parameter#
+--     @shaderStages@ /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-shaderStages-requiredbitmask#
+--     @shaderStages@ /must/ not be @0@
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-indirectExecutionSet-parameter# If
+--     @indirectExecutionSet@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @indirectExecutionSet@
+--     /must/ be a valid
+--     'Vulkan.Extensions.Handles.IndirectExecutionSetEXT' handle
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-parameter#
+--     @indirectCommandsLayout@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.IndirectCommandsLayoutEXT' handle
+--
+-- -   #VUID-VkGeneratedCommandsInfoEXT-commonparent# Both of
+--     @indirectCommandsLayout@, and @indirectExecutionSet@ 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_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutEXT',
+-- 'Vulkan.Extensions.Handles.IndirectExecutionSetEXT',
+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'cmdExecuteGeneratedCommandsEXT', 'cmdPreprocessGeneratedCommandsEXT'
+data GeneratedCommandsInfoEXT (es :: [Type]) = GeneratedCommandsInfoEXT
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @shaderStages@ is the mask of shader stages used by the commands.
+    shaderStages :: ShaderStageFlags
+  , -- | @indirectExecutionSet@ is the indirect execution set to be used for
+    -- binding shaders.
+    indirectExecutionSet :: IndirectExecutionSetEXT
+  , -- | @indirectCommandsLayout@ is the
+    -- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutEXT' that specifies the
+    -- command sequence data.
+    indirectCommandsLayout :: IndirectCommandsLayoutEXT
+  , -- | @indirectAddress@ is an address that holds the indirect buffer data.
+    indirectAddress :: DeviceAddress
+  , -- | @indirectAddressSize@ is the size in bytes of indirect buffer data
+    -- starting at @indirectAddress@.
+    indirectAddressSize :: DeviceSize
+  , -- | @preprocessAddress@ specifies a physical address of the
+    -- 'Vulkan.Core10.Handles.Buffer' used for preprocessing the input data for
+    -- execution. If this structure is used with
+    -- 'cmdExecuteGeneratedCommandsEXT' with its @isPreprocessed@ set to
+    -- 'Vulkan.Core10.FundamentalTypes.TRUE', then the preprocessing step is
+    -- skipped but data in this address /may/ still be modified. The contents
+    -- and the layout of this address are opaque to applications and /must/ not
+    -- be modified outside functions related to device-generated commands or
+    -- copied to another buffer for reuse.
+    preprocessAddress :: DeviceAddress
+  , -- | @preprocessSize@ is the maximum byte size within @preprocessAddress@
+    -- that is available for preprocessing.
+    preprocessSize :: DeviceSize
+  , -- | @maxSequenceCount@ is used to determine the number of sequences to
+    -- execute.
+    maxSequenceCount :: Word32
+  , -- | @sequenceCountAddress@ specifies an optional physical address of a
+    -- single @uint32_t@ value containing the requested number of sequences to
+    -- execute.
+    sequenceCountAddress :: DeviceAddress
+  , -- | @maxDrawCount@ is the maximum number of indirect draws that can be
+    -- executed by any COUNT-type multi-draw indirect tokens. The draw count in
+    -- the indirect buffer is clamped to this value for these token types.
+    maxDrawCount :: Word32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (GeneratedCommandsInfoEXT (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (GeneratedCommandsInfoEXT es)
+
+instance Extensible GeneratedCommandsInfoEXT where
+  extensibleTypeName = "GeneratedCommandsInfoEXT"
+  setNext GeneratedCommandsInfoEXT{..} next' = GeneratedCommandsInfoEXT{next = next', ..}
+  getNext GeneratedCommandsInfoEXT{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends GeneratedCommandsInfoEXT e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @GeneratedCommandsShaderInfoEXT = Just f
+    | Just Refl <- eqT @e @GeneratedCommandsPipelineInfoEXT = Just f
+    | otherwise = Nothing
+
+instance ( Extendss GeneratedCommandsInfoEXT es
+         , PokeChain es ) => ToCStruct (GeneratedCommandsInfoEXT es) where
+  withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p GeneratedCommandsInfoEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr ShaderStageFlags)) (shaderStages)
+    lift $ poke ((p `plusPtr` 24 :: Ptr IndirectExecutionSetEXT)) (indirectExecutionSet)
+    lift $ poke ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutEXT)) (indirectCommandsLayout)
+    lift $ poke ((p `plusPtr` 40 :: Ptr DeviceAddress)) (indirectAddress)
+    lift $ poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (indirectAddressSize)
+    lift $ poke ((p `plusPtr` 56 :: Ptr DeviceAddress)) (preprocessAddress)
+    lift $ poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (preprocessSize)
+    lift $ poke ((p `plusPtr` 72 :: Ptr Word32)) (maxSequenceCount)
+    lift $ poke ((p `plusPtr` 80 :: Ptr DeviceAddress)) (sequenceCountAddress)
+    lift $ poke ((p `plusPtr` 88 :: Ptr Word32)) (maxDrawCount)
+    lift $ f
+  cStructSize = 96
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 16 :: Ptr ShaderStageFlags)) (zero)
+    lift $ poke ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutEXT)) (zero)
+    lift $ poke ((p `plusPtr` 40 :: Ptr DeviceAddress)) (zero)
+    lift $ poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (zero)
+    lift $ poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (zero)
+    lift $ poke ((p `plusPtr` 72 :: Ptr Word32)) (zero)
+    lift $ poke ((p `plusPtr` 88 :: Ptr Word32)) (zero)
+    lift $ f
+
+instance ( Extendss GeneratedCommandsInfoEXT es
+         , PeekChain es ) => FromCStruct (GeneratedCommandsInfoEXT es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    shaderStages <- peek @ShaderStageFlags ((p `plusPtr` 16 :: Ptr ShaderStageFlags))
+    indirectExecutionSet <- peek @IndirectExecutionSetEXT ((p `plusPtr` 24 :: Ptr IndirectExecutionSetEXT))
+    indirectCommandsLayout <- peek @IndirectCommandsLayoutEXT ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutEXT))
+    indirectAddress <- peek @DeviceAddress ((p `plusPtr` 40 :: Ptr DeviceAddress))
+    indirectAddressSize <- peek @DeviceSize ((p `plusPtr` 48 :: Ptr DeviceSize))
+    preprocessAddress <- peek @DeviceAddress ((p `plusPtr` 56 :: Ptr DeviceAddress))
+    preprocessSize <- peek @DeviceSize ((p `plusPtr` 64 :: Ptr DeviceSize))
+    maxSequenceCount <- peek @Word32 ((p `plusPtr` 72 :: Ptr Word32))
+    sequenceCountAddress <- peek @DeviceAddress ((p `plusPtr` 80 :: Ptr DeviceAddress))
+    maxDrawCount <- peek @Word32 ((p `plusPtr` 88 :: Ptr Word32))
+    pure $ GeneratedCommandsInfoEXT
+             next
+             shaderStages
+             indirectExecutionSet
+             indirectCommandsLayout
+             indirectAddress
+             indirectAddressSize
+             preprocessAddress
+             preprocessSize
+             maxSequenceCount
+             sequenceCountAddress
+             maxDrawCount
+
+instance es ~ '[] => Zero (GeneratedCommandsInfoEXT es) where
+  zero = GeneratedCommandsInfoEXT
+           ()
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkWriteIndirectExecutionSetPipelineEXT - Struct specifying pipeline
+-- update information for an indirect execution set
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkWriteIndirectExecutionSetPipelineEXT-index-11026# @index@
+--     /must/ be less than the value of
+--     'IndirectExecutionSetPipelineInfoEXT'::@maxPipelineCount@ used to
+--     create the set
+--
+-- -   #VUID-VkWriteIndirectExecutionSetPipelineEXT-pipeline-11027#
+--     @pipeline@ /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT'
+--
+-- -   #VUID-VkWriteIndirectExecutionSetPipelineEXT-index-11029# @index@
+--     /must/ not be referenced by submitted command buffers
+--
+-- -   #VUID-VkWriteIndirectExecutionSetPipelineEXT-pipeline-11030# The
+--     shader stages contained in @pipeline@ /must/ be supported by
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-supportedIndirectCommandsShaderStagesPipelineBinding ::supportedIndirectCommandsShaderStagesPipelineBinding>
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkWriteIndirectExecutionSetPipelineEXT-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT'
+--
+-- -   #VUID-VkWriteIndirectExecutionSetPipelineEXT-pipeline-parameter#
+--     @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.Handles.Pipeline',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'updateIndirectExecutionSetPipelineEXT'
+data WriteIndirectExecutionSetPipelineEXT = WriteIndirectExecutionSetPipelineEXT
+  { -- | @index@ is the element of the set to update
+    index :: Word32
+  , -- | @pipeline@ is the pipeline to store in the indirect execution set
+    pipeline :: Pipeline
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (WriteIndirectExecutionSetPipelineEXT)
+#endif
+deriving instance Show WriteIndirectExecutionSetPipelineEXT
+
+instance ToCStruct WriteIndirectExecutionSetPipelineEXT where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p WriteIndirectExecutionSetPipelineEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (index)
+    poke ((p `plusPtr` 24 :: Ptr Pipeline)) (pipeline)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Pipeline)) (zero)
+    f
+
+instance FromCStruct WriteIndirectExecutionSetPipelineEXT where
+  peekCStruct p = do
+    index <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pipeline <- peek @Pipeline ((p `plusPtr` 24 :: Ptr Pipeline))
+    pure $ WriteIndirectExecutionSetPipelineEXT
+             index pipeline
+
+instance Storable WriteIndirectExecutionSetPipelineEXT where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero WriteIndirectExecutionSetPipelineEXT where
+  zero = WriteIndirectExecutionSetPipelineEXT
+           zero
+           zero
+
+
+-- | VkWriteIndirectExecutionSetShaderEXT - Struct specifying shader object
+-- update information for an indirect execution set
+--
+-- = Description
+--
+-- Shaders need not be stored in the Indirect Execution Set according to
+-- their stage. The only restriction for shader indices within a set is
+-- that the value of the index /must/ be less than the maximum number of
+-- shaders in the set.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkWriteIndirectExecutionSetShaderEXT-index-11031# @index@
+--     /must/ be less than
+--     'IndirectExecutionSetShaderInfoEXT'::@maxShaderCount@
+--
+-- -   #VUID-VkWriteIndirectExecutionSetShaderEXT-shader-11032# @shader@
+--     /must/ have been created with
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT'
+--
+-- -   #VUID-VkWriteIndirectExecutionSetShaderEXT-pInitialShaders-11033# A
+--     shader created with the same
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' /must/
+--     have been passed in the
+--     'IndirectExecutionSetShaderInfoEXT'::@pInitialShaders@ array
+--
+-- -   #VUID-VkWriteIndirectExecutionSetShaderEXT-index-11034# @index@
+--     /must/ not be in use by submitted command buffers
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkWriteIndirectExecutionSetShaderEXT-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT'
+--
+-- -   #VUID-VkWriteIndirectExecutionSetShaderEXT-shader-parameter#
+--     @shader@ /must/ be a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     handle
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
+-- 'Vulkan.Extensions.Handles.ShaderEXT',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'updateIndirectExecutionSetShaderEXT'
+data WriteIndirectExecutionSetShaderEXT = WriteIndirectExecutionSetShaderEXT
+  { -- | @index@ is the element of the set to update
+    index :: Word32
+  , -- | @shader@ is the shader to store in the indirect execution set
+    shader :: ShaderEXT
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (WriteIndirectExecutionSetShaderEXT)
+#endif
+deriving instance Show WriteIndirectExecutionSetShaderEXT
+
+instance ToCStruct WriteIndirectExecutionSetShaderEXT where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p WriteIndirectExecutionSetShaderEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (index)
+    poke ((p `plusPtr` 24 :: Ptr ShaderEXT)) (shader)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr ShaderEXT)) (zero)
+    f
+
+instance FromCStruct WriteIndirectExecutionSetShaderEXT where
+  peekCStruct p = do
+    index <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    shader <- peek @ShaderEXT ((p `plusPtr` 24 :: Ptr ShaderEXT))
+    pure $ WriteIndirectExecutionSetShaderEXT
+             index shader
+
+instance Storable WriteIndirectExecutionSetShaderEXT where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero WriteIndirectExecutionSetShaderEXT where
+  zero = WriteIndirectExecutionSetShaderEXT
+           zero
+           zero
+
+
+-- | VkIndirectCommandsLayoutCreateInfoEXT - Structure specifying the
+-- parameters of a newly created indirect commands layout object
+--
+-- = Description
+--
+-- The following code illustrates some of the flags:
+--
+-- > void cmdProcessAllSequences(cmd, indirectExecutionSet, indirectCommandsLayout, indirectAddress, sequencesCount)
+-- > {
+-- >   for (s = 0; s < sequencesCount; s++)
+-- >   {
+-- >     sUsed = s;
+-- >
+-- >     if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT) {
+-- >       sUsed = incoherent_implementation_dependent_permutation[ sUsed ];
+-- >     }
+-- >
+-- >     cmdProcessSequence( cmd, indirectExecutionSet, indirectCommandsLayout, indirectAddress, 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 @4@, whichever is lower.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-indirectStride-11090#
+--     @indirectStride@ /must/ be less than or equal to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT'::@maxIndirectCommandsIndirectStride@
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11091#
+--     @shaderStages@ /must/ only contain stages supported by
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-supportedIndirectCommandsShaderStages ::supportedIndirectCommandsShaderStages>
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-tokenCount-11092#
+--     @tokenCount@ /must/ less than or equal to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT'::@maxIndirectCommandsTokenCount@
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11093# The
+--     number of tokens in the @pTokens@ array with @type@ equal to
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT' /must/ be less than
+--     or equal to @1@
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11145# The
+--     number of tokens in the @pTokens@ array with @type@ equal to
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT' /must/ be less
+--     than or equal to @1@
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11094# The
+--     number of tokens in the @pTokens@ array with @type@ equal to
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT' /must/ be less than
+--     or equal to @1@
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11095# If the
+--     action command token in the @pTokens@ array is not an indexed draw
+--     token, then @pTokens@ /must/ not contain a member with @type@ set to
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11096# If the
+--     action command token in the @pTokens@ array is not a non-mesh draw
+--     token, then @pTokens@ /must/ not contain a member with @type@ set to
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11097# If the
+--     @pTokens@ array contains multiple tokens with @type@ equal to
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT', then there /must/
+--     be no duplicate
+--     'IndirectCommandsVertexBufferTokenEXT'::@vertexBindingUnit@ values
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11099# For all
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT' and
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT' type tokens in
+--     @pTokens@, there /must/ be no overlapping ranges between any
+--     specified push constant ranges
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11100# The
+--     action command token /must/ be the last token in the @pTokens@ array
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11139# If the
+--     @pTokens@ array contains a
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT' token, then this
+--     token /must/ be the first token in the array
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11101# For any
+--     element of @pTokens@, if @type@ is
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT' or
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT' and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicGeneratedPipelineLayout dynamicGeneratedPipelineLayout>
+--     feature is not enabled, then the @pipelineLayout@ /must/ not be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11102# For any
+--     element of @pTokens@, if @type@ is either
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT' or
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT' and
+--     @pipelineLayout@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then
+--     the @pNext@ chain /must/ include a
+--     'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo' struct
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11103# For any
+--     element of @pTokens@, the @offset@ /must/ be greater than or equal
+--     to the @offset@ member of the previous tokens
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11104# For any
+--     element of @pTokens@, if @type@ is
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT', or
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT', then @shaderStages@ /must/
+--     contain graphics stages
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11105# For any
+--     element of @pTokens@, if @type@ is
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT', then @shaderStages@
+--     /must/ be
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11106# For any
+--     element of @pTokens@, if @type@ is
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT' or
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT', then
+--     @shaderStages@ /must/ contain
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11107# For any
+--     element of @pTokens@, if @type@ is
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT' or
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT', then
+--     the @shaderStages@ /must/ contain
+--     'Vulkan.Extensions.VK_NV_mesh_shader.SHADER_STAGE_MESH_BIT_NV'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11108# For any
+--     element of @pTokens@, if @type@ is
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT', then @shaderStages@
+--     /must/ contain ray tracing stages
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11109# If
+--     @shaderStages@ contains graphics stages then the state tokens in
+--     @pTokens@ /must/ not include
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11110# If
+--     @shaderStages@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT'
+--     then the state tokens in @pTokens@ /must/ only include
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT', or
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11111# If
+--     @shaderStages@ contains ray tracing stages then the state tokens in
+--     @pTokens@ /must/ only include
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT', or
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11112# The
+--     @shaderStages@ /must/ only contain stages from one of the following:
+--
+--     -   graphics stages
+--
+--     -   'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT'
+--
+--     -   mesh stages and
+--         'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+--     -   ray tracing stages
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11113# If
+--     @shaderStages@ contains
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',
+--     then @shaderStages@ /must/ also contain
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pNext-pNext# @pNext@
+--     /must/ be @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-sType-unique# The
+--     @sType@ value of each struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-flags-parameter# @flags@
+--     /must/ be a valid combination of
+--     'IndirectCommandsLayoutUsageFlagBitsEXT' values
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-parameter#
+--     @shaderStages@ /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-requiredbitmask#
+--     @shaderStages@ /must/ not be @0@
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pipelineLayout-parameter#
+--     If @pipelineLayout@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pipelineLayout@ /must/ be a valid
+--     'Vulkan.Core10.Handles.PipelineLayout' handle
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-parameter#
+--     @pTokens@ /must/ be a valid pointer to an array of @tokenCount@
+--     valid 'IndirectCommandsLayoutTokenEXT' structures
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoEXT-tokenCount-arraylength#
+--     @tokenCount@ /must/ be greater than @0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'IndirectCommandsLayoutTokenEXT', 'IndirectCommandsLayoutUsageFlagsEXT',
+-- 'Vulkan.Core10.Handles.PipelineLayout',
+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'createIndirectCommandsLayoutEXT'
+data IndirectCommandsLayoutCreateInfoEXT (es :: [Type]) = IndirectCommandsLayoutCreateInfoEXT
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is a bitmask of 'IndirectCommandsLayoutUsageFlagBitsEXT'
+    -- specifying usage rules for this layout.
+    flags :: IndirectCommandsLayoutUsageFlagsEXT
+  , -- | @shaderStages@ is the
+    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags' that this
+    -- layout supports.
+    shaderStages :: ShaderStageFlags
+  , -- | @indirectStride@ is the distance in bytes between sequences in the
+    -- indirect buffer
+    indirectStride :: Word32
+  , -- | @pipelineLayout@ is the optional 'Vulkan.Core10.Handles.PipelineLayout'
+    -- that tokens in this layout use. If the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicGeneratedPipelineLayout dynamicGeneratedPipelineLayout>
+    -- feature is enabled, @pipelineLayout@ /can/ be
+    -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the layout /must/ be
+    -- specified by chaining the
+    -- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo' structure off
+    -- the @pNext@
+    pipelineLayout :: PipelineLayout
+  , -- | @pTokens@ is a pointer to an array of 'IndirectCommandsLayoutTokenEXT'
+    -- describing each command token in detail.
+    tokens :: Vector IndirectCommandsLayoutTokenEXT
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (IndirectCommandsLayoutCreateInfoEXT (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (IndirectCommandsLayoutCreateInfoEXT es)
+
+instance Extensible IndirectCommandsLayoutCreateInfoEXT where
+  extensibleTypeName = "IndirectCommandsLayoutCreateInfoEXT"
+  setNext IndirectCommandsLayoutCreateInfoEXT{..} next' = IndirectCommandsLayoutCreateInfoEXT{next = next', ..}
+  getNext IndirectCommandsLayoutCreateInfoEXT{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends IndirectCommandsLayoutCreateInfoEXT e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @PipelineLayoutCreateInfo = Just f
+    | otherwise = Nothing
+
+instance ( Extendss IndirectCommandsLayoutCreateInfoEXT es
+         , PokeChain es ) => ToCStruct (IndirectCommandsLayoutCreateInfoEXT es) where
+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p IndirectCommandsLayoutCreateInfoEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr IndirectCommandsLayoutUsageFlagsEXT)) (flags)
+    lift $ poke ((p `plusPtr` 20 :: Ptr ShaderStageFlags)) (shaderStages)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (indirectStride)
+    lift $ poke ((p `plusPtr` 32 :: Ptr PipelineLayout)) (pipelineLayout)
+    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (tokens)) :: Word32))
+    pPTokens' <- ContT $ allocaBytes @IndirectCommandsLayoutTokenEXT ((Data.Vector.length (tokens)) * 40)
+    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPTokens' `plusPtr` (40 * (i)) :: Ptr IndirectCommandsLayoutTokenEXT) (e) . ($ ())) (tokens)
+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr IndirectCommandsLayoutTokenEXT))) (pPTokens')
+    lift $ f
+  cStructSize = 56
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 20 :: Ptr ShaderStageFlags)) (zero)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    lift $ f
+
+instance es ~ '[] => Zero (IndirectCommandsLayoutCreateInfoEXT es) where
+  zero = IndirectCommandsLayoutCreateInfoEXT
+           ()
+           zero
+           zero
+           zero
+           zero
+           mempty
+
+
+-- | VkIndirectCommandsLayoutTokenEXT - Struct specifying the details of an
+-- indirect command layout token
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenEXT-offset-11124# @offset@ /must/
+--     be less than or equal to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT'::@maxIndirectCommandsTokenOffset@
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenEXT-offset-11125# @offset@ /must/
+--     be aligned to @4@
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenEXT-meshShader-11126# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShader meshShader>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-taskShader taskShader>
+--     are not enabled, @type@ /must/ not be
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT'
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT' or
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT'
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenEXT-rayTracingMaintenance1-11128#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingMaintenance1 rayTracingMaintenance1>
+--     feature is not enabled, @type@ /must/ not be
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT'
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenEXT-deviceGeneratedCommandsMultiDrawIndirectCount-11129#
+--     If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-deviceGeneratedCommandsMultiDrawIndirectCount ::deviceGeneratedCommandsMultiDrawIndirectCount>
+--     is not supported, @type@ /must/ not be
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT' or
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT'
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenEXT-deviceGeneratedCommandsMultiDrawIndirectCount-11130#
+--     If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-deviceGeneratedCommandsMultiDrawIndirectCount ::deviceGeneratedCommandsMultiDrawIndirectCount>
+--     is not supported, @type@ /must/ not be
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT'
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenEXT-deviceGeneratedCommandsMultiDrawIndirectCount-11131#
+--     If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-deviceGeneratedCommandsMultiDrawIndirectCount ::deviceGeneratedCommandsMultiDrawIndirectCount>
+--     is not supported, @type@ /must/ not be
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenEXT-sType-sType# @sType@ /must/
+--     be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT'
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenEXT-type-parameter# @type@ /must/
+--     be a valid 'IndirectCommandsTokenTypeEXT' value
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenEXT-pPushConstant-parameter# If
+--     @type@ is
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT',VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT,
+--     the @pPushConstant@ member of @data@ /must/ be a valid pointer to a
+--     valid 'IndirectCommandsPushConstantTokenEXT' structure
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenEXT-pVertexBuffer-parameter# If
+--     @type@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT', the
+--     @pVertexBuffer@ member of @data@ /must/ be a valid pointer to a
+--     valid 'IndirectCommandsVertexBufferTokenEXT' structure
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenEXT-pIndexBuffer-parameter# If
+--     @type@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT', the
+--     @pIndexBuffer@ member of @data@ /must/ be a valid pointer to a valid
+--     'IndirectCommandsIndexBufferTokenEXT' structure
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenEXT-pExecutionSet-parameter# If
+--     @type@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT', the
+--     @pExecutionSet@ member of @data@ /must/ be a valid pointer to a
+--     valid 'IndirectCommandsExecutionSetTokenEXT' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'IndirectCommandsLayoutCreateInfoEXT', 'IndirectCommandsTokenDataEXT',
+-- 'IndirectCommandsTokenTypeEXT',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data IndirectCommandsLayoutTokenEXT = IndirectCommandsLayoutTokenEXT
+  { -- | @type@ specifies the 'IndirectCommandsTokenTypeEXT' for @data@.
+    type' :: IndirectCommandsTokenTypeEXT
+  , -- | @data@ specifies a 'IndirectCommandsTokenDataEXT' containing
+    -- token-specific details for command execution. It is ignored if @type@
+    -- does not match any member of the 'IndirectCommandsTokenDataEXT' union.
+    data' :: IndirectCommandsTokenDataEXT
+  , -- | @offset@ is the relative byte offset for the token within one sequence
+    -- of the indirect buffer. The data stored at that offset is the command
+    -- data for the token, e.g.
+    -- 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand'.
+    offset :: Word32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (IndirectCommandsLayoutTokenEXT)
+#endif
+deriving instance Show IndirectCommandsLayoutTokenEXT
+
+instance ToCStruct IndirectCommandsLayoutTokenEXT where
+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p IndirectCommandsLayoutTokenEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr IndirectCommandsTokenTypeEXT)) (type')
+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr IndirectCommandsTokenDataEXT)) (data') . ($ ())
+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (offset)
+    lift $ f
+  cStructSize = 40
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr IndirectCommandsTokenTypeEXT)) (zero)
+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr IndirectCommandsTokenDataEXT)) (zero) . ($ ())
+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)
+    lift $ f
+
+instance Zero IndirectCommandsLayoutTokenEXT where
+  zero = IndirectCommandsLayoutTokenEXT
+           zero
+           zero
+           zero
+
+
+-- | VkDrawIndirectCountIndirectCommandEXT - Structure specifying input data
+-- for a single draw-type command token
+--
+-- = Description
+--
+-- The corresponding indirect draw struct data will be read from the buffer
+-- address.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkDrawIndirectCountIndirectCommandEXT-None-11122# The buffer’s
+--     usage flag from which the address was acquired /must/ have the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-VkDrawIndirectCountIndirectCommandEXT-None-11123# 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_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress'
+data DrawIndirectCountIndirectCommandEXT = DrawIndirectCountIndirectCommandEXT
+  { -- | @bufferAddress@ specifies a physical address of the
+    -- 'Vulkan.Core10.Handles.Buffer' used for draw commands.
+    bufferAddress :: DeviceAddress
+  , -- | @stride@ is the byte size stride for the command arguments
+    stride :: Word32
+  , -- | @commandCount@ is the number of commands to execute
+    commandCount :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (DrawIndirectCountIndirectCommandEXT)
+#endif
+deriving instance Show DrawIndirectCountIndirectCommandEXT
+
+instance ToCStruct DrawIndirectCountIndirectCommandEXT where
+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p DrawIndirectCountIndirectCommandEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (bufferAddress)
+    poke ((p `plusPtr` 8 :: Ptr Word32)) (stride)
+    poke ((p `plusPtr` 12 :: Ptr Word32)) (commandCount)
+    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 DrawIndirectCountIndirectCommandEXT where
+  peekCStruct p = do
+    bufferAddress <- peek @DeviceAddress ((p `plusPtr` 0 :: Ptr DeviceAddress))
+    stride <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
+    commandCount <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
+    pure $ DrawIndirectCountIndirectCommandEXT
+             bufferAddress stride commandCount
+
+instance Storable DrawIndirectCountIndirectCommandEXT where
+  sizeOf ~_ = 16
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero DrawIndirectCountIndirectCommandEXT where
+  zero = DrawIndirectCountIndirectCommandEXT
+           zero
+           zero
+           zero
+
+
+-- | VkIndirectCommandsVertexBufferTokenEXT - Structure specifying layout
+-- token info for a single index buffer command token
+--
+-- == Valid Usage
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'IndirectCommandsTokenDataEXT'
+data IndirectCommandsVertexBufferTokenEXT = IndirectCommandsVertexBufferTokenEXT
+  { -- | @vertexBindingUnit@ is the vertex input binding number to be bound.
+    --
+    -- #VUID-VkIndirectCommandsVertexBufferTokenEXT-vertexBindingUnit-11134#
+    -- @vertexBindingUnit@ /must/ be less than the total number of vertex input
+    -- bindings in use by the current graphics state
+    vertexBindingUnit :: Word32 }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (IndirectCommandsVertexBufferTokenEXT)
+#endif
+deriving instance Show IndirectCommandsVertexBufferTokenEXT
+
+instance ToCStruct IndirectCommandsVertexBufferTokenEXT where
+  withCStruct x f = allocaBytes 4 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p IndirectCommandsVertexBufferTokenEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (vertexBindingUnit)
+    f
+  cStructSize = 4
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct IndirectCommandsVertexBufferTokenEXT where
+  peekCStruct p = do
+    vertexBindingUnit <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
+    pure $ IndirectCommandsVertexBufferTokenEXT
+             vertexBindingUnit
+
+instance Storable IndirectCommandsVertexBufferTokenEXT where
+  sizeOf ~_ = 4
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero IndirectCommandsVertexBufferTokenEXT where
+  zero = IndirectCommandsVertexBufferTokenEXT
+           zero
+
+
+-- | VkBindVertexBufferIndirectCommandEXT - Structure specifying input data
+-- for a single vertex buffer command token
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkBindVertexBufferIndirectCommandEXT-None-11120# 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-VkBindVertexBufferIndirectCommandEXT-None-11121# 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_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress'
+data BindVertexBufferIndirectCommandEXT = BindVertexBufferIndirectCommandEXT
+  { -- | @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@.
+    stride :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (BindVertexBufferIndirectCommandEXT)
+#endif
+deriving instance Show BindVertexBufferIndirectCommandEXT
+
+instance ToCStruct BindVertexBufferIndirectCommandEXT where
+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p BindVertexBufferIndirectCommandEXT{..} 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 BindVertexBufferIndirectCommandEXT 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 $ BindVertexBufferIndirectCommandEXT
+             bufferAddress size stride
+
+instance Storable BindVertexBufferIndirectCommandEXT where
+  sizeOf ~_ = 16
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero BindVertexBufferIndirectCommandEXT where
+  zero = BindVertexBufferIndirectCommandEXT
+           zero
+           zero
+           zero
+
+
+-- | VkIndirectCommandsIndexBufferTokenEXT - Structure specifying layout
+-- token info for a single index buffer command token
+--
+-- = Description
+--
+-- This allows for easy layering of Vulkan atop other APIs. When
+-- 'INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT' is specified, the
+-- indirect buffer can contain a @D3D12_INDEX_BUFFER_VIEW@ instead of
+-- 'BindIndexBufferIndirectCommandEXT' as D3D’s DXGI format value is mapped
+-- to the 'Vulkan.Core10.Enums.IndexType.IndexType'. It works as both
+-- structs are otherwise binary compatible.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'IndirectCommandsInputModeFlagBitsEXT', 'IndirectCommandsTokenDataEXT'
+data IndirectCommandsIndexBufferTokenEXT = IndirectCommandsIndexBufferTokenEXT
+  { -- | @mode@ specifies the mode to use with this token.
+    --
+    -- #VUID-VkIndirectCommandsIndexBufferTokenEXT-mode-11135# @mode@ /must/ be
+    -- non-zero
+    --
+    -- #VUID-VkIndirectCommandsIndexBufferTokenEXT-mode-11136# @mode@ /must/ be
+    -- one of the bits supported in
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-supportedIndirectCommandsInputModes ::supportedIndirectCommandsInputModes>
+    --
+    -- #VUID-VkIndirectCommandsIndexBufferTokenEXT-mode-parameter# @mode@
+    -- /must/ be a valid 'IndirectCommandsInputModeFlagBitsEXT' value
+    mode :: IndirectCommandsInputModeFlagBitsEXT }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (IndirectCommandsIndexBufferTokenEXT)
+#endif
+deriving instance Show IndirectCommandsIndexBufferTokenEXT
+
+instance ToCStruct IndirectCommandsIndexBufferTokenEXT where
+  withCStruct x f = allocaBytes 4 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p IndirectCommandsIndexBufferTokenEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr IndirectCommandsInputModeFlagBitsEXT)) (mode)
+    f
+  cStructSize = 4
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr IndirectCommandsInputModeFlagBitsEXT)) (zero)
+    f
+
+instance FromCStruct IndirectCommandsIndexBufferTokenEXT where
+  peekCStruct p = do
+    mode <- peek @IndirectCommandsInputModeFlagBitsEXT ((p `plusPtr` 0 :: Ptr IndirectCommandsInputModeFlagBitsEXT))
+    pure $ IndirectCommandsIndexBufferTokenEXT
+             mode
+
+instance Storable IndirectCommandsIndexBufferTokenEXT where
+  sizeOf ~_ = 4
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero IndirectCommandsIndexBufferTokenEXT where
+  zero = IndirectCommandsIndexBufferTokenEXT
+           zero
+
+
+-- | VkBindIndexBufferIndirectCommandEXT - Structure specifying input data
+-- for a single index buffer command token
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkBindIndexBufferIndirectCommandEXT-None-11117# The buffer’s
+--     usage flags from which the address was acquired /must/ have the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDEX_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-VkBindIndexBufferIndirectCommandEXT-bufferAddress-11118# The
+--     @bufferAddress@ /must/ be aligned to the
+--     'Vulkan.Core10.Enums.IndexType.IndexType' of the @indexType@ used
+--
+-- -   #VUID-VkBindIndexBufferIndirectCommandEXT-None-11119# 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-VkBindIndexBufferIndirectCommandEXT-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_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress',
+-- 'Vulkan.Core10.Enums.IndexType.IndexType'
+data BindIndexBufferIndirectCommandEXT = BindIndexBufferIndirectCommandEXT
+  { -- | @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.
+    indexType :: IndexType
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (BindIndexBufferIndirectCommandEXT)
+#endif
+deriving instance Show BindIndexBufferIndirectCommandEXT
+
+instance ToCStruct BindIndexBufferIndirectCommandEXT where
+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p BindIndexBufferIndirectCommandEXT{..} 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 BindIndexBufferIndirectCommandEXT 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 $ BindIndexBufferIndirectCommandEXT
+             bufferAddress size indexType
+
+instance Storable BindIndexBufferIndirectCommandEXT where
+  sizeOf ~_ = 16
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero BindIndexBufferIndirectCommandEXT where
+  zero = BindIndexBufferIndirectCommandEXT
+           zero
+           zero
+           zero
+
+
+-- | VkIndirectCommandsPushConstantTokenEXT - Structure specifying layout
+-- token info for a single push constant command token
+--
+-- = Description
+--
+-- The @stageFlags@ member of @updateRange@ is ignored.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkIndirectCommandsPushConstantTokenEXT-updateRange-11132#
+--     @updateRange@ /must/ be contained within the push constant info used
+--     by 'IndirectCommandsLayoutCreateInfoEXT'
+--
+-- -   #VUID-VkIndirectCommandsPushConstantTokenEXT-size-11133# If the
+--     token type is 'INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT', the
+--     @size@ member of @updateRange@ /must/ be 4
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkIndirectCommandsPushConstantTokenEXT-updateRange-parameter#
+--     @updateRange@ /must/ be a valid
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'IndirectCommandsTokenDataEXT',
+-- 'Vulkan.Core10.PipelineLayout.PushConstantRange'
+data IndirectCommandsPushConstantTokenEXT = IndirectCommandsPushConstantTokenEXT
+  { -- | @updateRange@ is the push constant range that will be updated by the
+    -- token.
+    updateRange :: PushConstantRange }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (IndirectCommandsPushConstantTokenEXT)
+#endif
+deriving instance Show IndirectCommandsPushConstantTokenEXT
+
+instance ToCStruct IndirectCommandsPushConstantTokenEXT where
+  withCStruct x f = allocaBytes 12 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p IndirectCommandsPushConstantTokenEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr PushConstantRange)) (updateRange)
+    f
+  cStructSize = 12
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr PushConstantRange)) (zero)
+    f
+
+instance FromCStruct IndirectCommandsPushConstantTokenEXT where
+  peekCStruct p = do
+    updateRange <- peekCStruct @PushConstantRange ((p `plusPtr` 0 :: Ptr PushConstantRange))
+    pure $ IndirectCommandsPushConstantTokenEXT
+             updateRange
+
+instance Storable IndirectCommandsPushConstantTokenEXT where
+  sizeOf ~_ = 12
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero IndirectCommandsPushConstantTokenEXT where
+  zero = IndirectCommandsPushConstantTokenEXT
+           zero
+
+
+-- | VkIndirectCommandsExecutionSetTokenEXT - Structure specifying input data
+-- for a single execution set command token
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkIndirectCommandsExecutionSetTokenEXT-shaderStages-11137#
+--     Each bit in @shaderStages@ /must/ be supported by
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-supportedIndirectCommandsShaderStagesPipelineBinding ::supportedIndirectCommandsShaderStagesPipelineBinding>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-supportedIndirectCommandsShaderStagesShaderBinding ::supportedIndirectCommandsShaderStagesShaderBinding>
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkIndirectCommandsExecutionSetTokenEXT-type-parameter# @type@
+--     /must/ be a valid 'IndirectExecutionSetInfoTypeEXT' value
+--
+-- -   #VUID-VkIndirectCommandsExecutionSetTokenEXT-shaderStages-parameter#
+--     @shaderStages@ /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values
+--
+-- -   #VUID-VkIndirectCommandsExecutionSetTokenEXT-shaderStages-requiredbitmask#
+--     @shaderStages@ /must/ not be @0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'IndirectCommandsTokenDataEXT', 'IndirectExecutionSetInfoTypeEXT',
+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags'
+data IndirectCommandsExecutionSetTokenEXT = IndirectCommandsExecutionSetTokenEXT
+  { -- | @type@ describes the type of indirect execution set in use.
+    type' :: IndirectExecutionSetInfoTypeEXT
+  , -- | @shaderStages@ specifies the shaders that will be changed by this token.
+    shaderStages :: ShaderStageFlags
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (IndirectCommandsExecutionSetTokenEXT)
+#endif
+deriving instance Show IndirectCommandsExecutionSetTokenEXT
+
+instance ToCStruct IndirectCommandsExecutionSetTokenEXT where
+  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p IndirectCommandsExecutionSetTokenEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr IndirectExecutionSetInfoTypeEXT)) (type')
+    poke ((p `plusPtr` 4 :: Ptr ShaderStageFlags)) (shaderStages)
+    f
+  cStructSize = 8
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr IndirectExecutionSetInfoTypeEXT)) (zero)
+    poke ((p `plusPtr` 4 :: Ptr ShaderStageFlags)) (zero)
+    f
+
+instance FromCStruct IndirectCommandsExecutionSetTokenEXT where
+  peekCStruct p = do
+    type' <- peek @IndirectExecutionSetInfoTypeEXT ((p `plusPtr` 0 :: Ptr IndirectExecutionSetInfoTypeEXT))
+    shaderStages <- peek @ShaderStageFlags ((p `plusPtr` 4 :: Ptr ShaderStageFlags))
+    pure $ IndirectCommandsExecutionSetTokenEXT
+             type' shaderStages
+
+instance Storable IndirectCommandsExecutionSetTokenEXT where
+  sizeOf ~_ = 8
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero IndirectCommandsExecutionSetTokenEXT where
+  zero = IndirectCommandsExecutionSetTokenEXT
+           zero
+           zero
+
+
+data IndirectExecutionSetInfoEXT
+  = PipelineInfo IndirectExecutionSetPipelineInfoEXT
+  | ShaderInfo IndirectExecutionSetShaderInfoEXT
+  deriving (Show)
+
+instance ToCStruct IndirectExecutionSetInfoEXT where
+  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct :: Ptr IndirectExecutionSetInfoEXT -> IndirectExecutionSetInfoEXT -> IO a -> IO a
+  pokeCStruct p = (. const) . runContT .  \case
+    PipelineInfo v -> do
+      pPipelineInfo <- ContT $ withCStruct (v)
+      lift $ poke (castPtr @_ @(Ptr IndirectExecutionSetPipelineInfoEXT) p) pPipelineInfo
+    ShaderInfo v -> do
+      pShaderInfo <- ContT $ withCStruct (v)
+      lift $ poke (castPtr @_ @(Ptr IndirectExecutionSetShaderInfoEXT) p) pShaderInfo
+  pokeZeroCStruct :: Ptr IndirectExecutionSetInfoEXT -> IO b -> IO b
+  pokeZeroCStruct _ f = f
+  cStructSize = 8
+  cStructAlignment = 8
+
+instance Zero IndirectExecutionSetInfoEXT where
+  zero = PipelineInfo zero
+
+
+data IndirectCommandsTokenDataEXT
+  = PushConstant IndirectCommandsPushConstantTokenEXT
+  | VertexBuffer IndirectCommandsVertexBufferTokenEXT
+  | IndexBuffer IndirectCommandsIndexBufferTokenEXT
+  | ExecutionSet IndirectCommandsExecutionSetTokenEXT
+  deriving (Show)
+
+instance ToCStruct IndirectCommandsTokenDataEXT where
+  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct :: Ptr IndirectCommandsTokenDataEXT -> IndirectCommandsTokenDataEXT -> IO a -> IO a
+  pokeCStruct p = (. const) . runContT .  \case
+    PushConstant v -> do
+      pPushConstant <- ContT $ withCStruct (v)
+      lift $ poke (castPtr @_ @(Ptr IndirectCommandsPushConstantTokenEXT) p) pPushConstant
+    VertexBuffer v -> do
+      pVertexBuffer <- ContT $ withCStruct (v)
+      lift $ poke (castPtr @_ @(Ptr IndirectCommandsVertexBufferTokenEXT) p) pVertexBuffer
+    IndexBuffer v -> do
+      pIndexBuffer <- ContT $ withCStruct (v)
+      lift $ poke (castPtr @_ @(Ptr IndirectCommandsIndexBufferTokenEXT) p) pIndexBuffer
+    ExecutionSet v -> do
+      pExecutionSet <- ContT $ withCStruct (v)
+      lift $ poke (castPtr @_ @(Ptr IndirectCommandsExecutionSetTokenEXT) p) pExecutionSet
+  pokeZeroCStruct :: Ptr IndirectCommandsTokenDataEXT -> IO b -> IO b
+  pokeZeroCStruct _ f = f
+  cStructSize = 8
+  cStructAlignment = 8
+
+instance Zero IndirectCommandsTokenDataEXT where
+  zero = PushConstant zero
+
+
+type IndirectCommandsLayoutUsageFlagsEXT = IndirectCommandsLayoutUsageFlagBitsEXT
+
+-- | VkIndirectCommandsLayoutUsageFlagBitsEXT - 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_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'IndirectCommandsLayoutUsageFlagsEXT'
+newtype IndirectCommandsLayoutUsageFlagBitsEXT = IndirectCommandsLayoutUsageFlagBitsEXT Flags
+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
+
+-- | 'INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT' specifies
+-- that the layout is always used with the manual preprocessing step
+-- through calling 'cmdPreprocessGeneratedCommandsEXT' and executed by
+-- 'cmdExecuteGeneratedCommandsEXT' with @isPreprocessed@ set to
+-- 'Vulkan.Core10.FundamentalTypes.TRUE'.
+pattern INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT = IndirectCommandsLayoutUsageFlagBitsEXT 0x00000001
+
+-- | 'INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT' specifies
+-- that the processing of sequences will happen at an
+-- implementation-dependent order, which is not guaranteed to be
+-- deterministic using the same input data. This flag is ignored when the
+-- @shaderStages@ is
+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' as it
+-- is implied that the dispatch sequence is always unordered.
+pattern INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT = IndirectCommandsLayoutUsageFlagBitsEXT 0x00000002
+
+conNameIndirectCommandsLayoutUsageFlagBitsEXT :: String
+conNameIndirectCommandsLayoutUsageFlagBitsEXT = "IndirectCommandsLayoutUsageFlagBitsEXT"
+
+enumPrefixIndirectCommandsLayoutUsageFlagBitsEXT :: String
+enumPrefixIndirectCommandsLayoutUsageFlagBitsEXT = "INDIRECT_COMMANDS_LAYOUT_USAGE_"
+
+showTableIndirectCommandsLayoutUsageFlagBitsEXT :: [(IndirectCommandsLayoutUsageFlagBitsEXT, String)]
+showTableIndirectCommandsLayoutUsageFlagBitsEXT =
+  [
+    ( INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT
+    , "EXPLICIT_PREPROCESS_BIT_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT
+    , "UNORDERED_SEQUENCES_BIT_EXT"
+    )
+  ]
+
+instance Show IndirectCommandsLayoutUsageFlagBitsEXT where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixIndirectCommandsLayoutUsageFlagBitsEXT
+      showTableIndirectCommandsLayoutUsageFlagBitsEXT
+      conNameIndirectCommandsLayoutUsageFlagBitsEXT
+      (\(IndirectCommandsLayoutUsageFlagBitsEXT x) -> x)
+      (\x -> showString "0x" . showHex x)
+
+instance Read IndirectCommandsLayoutUsageFlagBitsEXT where
+  readPrec =
+    enumReadPrec
+      enumPrefixIndirectCommandsLayoutUsageFlagBitsEXT
+      showTableIndirectCommandsLayoutUsageFlagBitsEXT
+      conNameIndirectCommandsLayoutUsageFlagBitsEXT
+      IndirectCommandsLayoutUsageFlagBitsEXT
+
+-- | VkIndirectExecutionSetInfoTypeEXT - Enum specifying allowed usage of an
+-- indirect execution set
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'IndirectCommandsExecutionSetTokenEXT',
+-- 'IndirectExecutionSetCreateInfoEXT'
+newtype IndirectExecutionSetInfoTypeEXT = IndirectExecutionSetInfoTypeEXT Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT' specifies that the
+-- indirect execution set contains 'Vulkan.Core10.Handles.Pipeline'
+-- objects.
+pattern INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT = IndirectExecutionSetInfoTypeEXT 0
+
+-- | 'INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT' specifies that the
+-- indirect execution set contains 'Vulkan.Extensions.Handles.ShaderEXT'
+-- objects.
+pattern INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT = IndirectExecutionSetInfoTypeEXT 1
+
+{-# COMPLETE
+  INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT
+  , INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT ::
+    IndirectExecutionSetInfoTypeEXT
+  #-}
+
+conNameIndirectExecutionSetInfoTypeEXT :: String
+conNameIndirectExecutionSetInfoTypeEXT = "IndirectExecutionSetInfoTypeEXT"
+
+enumPrefixIndirectExecutionSetInfoTypeEXT :: String
+enumPrefixIndirectExecutionSetInfoTypeEXT = "INDIRECT_EXECUTION_SET_INFO_TYPE_"
+
+showTableIndirectExecutionSetInfoTypeEXT :: [(IndirectExecutionSetInfoTypeEXT, String)]
+showTableIndirectExecutionSetInfoTypeEXT =
+  [
+    ( INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT
+    , "PIPELINES_EXT"
+    )
+  ,
+    ( INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT
+    , "SHADER_OBJECTS_EXT"
+    )
+  ]
+
+instance Show IndirectExecutionSetInfoTypeEXT where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixIndirectExecutionSetInfoTypeEXT
+      showTableIndirectExecutionSetInfoTypeEXT
+      conNameIndirectExecutionSetInfoTypeEXT
+      (\(IndirectExecutionSetInfoTypeEXT x) -> x)
+      (showsPrec 11)
+
+instance Read IndirectExecutionSetInfoTypeEXT where
+  readPrec =
+    enumReadPrec
+      enumPrefixIndirectExecutionSetInfoTypeEXT
+      showTableIndirectExecutionSetInfoTypeEXT
+      conNameIndirectExecutionSetInfoTypeEXT
+      IndirectExecutionSetInfoTypeEXT
+
+type IndirectCommandsInputModeFlagsEXT = IndirectCommandsInputModeFlagBitsEXT
+
+-- | VkIndirectCommandsInputModeFlagBitsEXT - 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_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'IndirectCommandsIndexBufferTokenEXT',
+-- 'IndirectCommandsInputModeFlagsEXT'
+newtype IndirectCommandsInputModeFlagBitsEXT = IndirectCommandsInputModeFlagBitsEXT Flags
+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
+
+-- | 'INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT' specifies that
+-- the indirect buffer contains 'BindIndexBufferIndirectCommandEXT'.
+pattern INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT = IndirectCommandsInputModeFlagBitsEXT 0x00000001
+
+-- | 'INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT' specifies that the
+-- indirect buffer contains @D3D12_INDEX_BUFFER_VIEW@.
+pattern INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT = IndirectCommandsInputModeFlagBitsEXT 0x00000002
+
+conNameIndirectCommandsInputModeFlagBitsEXT :: String
+conNameIndirectCommandsInputModeFlagBitsEXT = "IndirectCommandsInputModeFlagBitsEXT"
+
+enumPrefixIndirectCommandsInputModeFlagBitsEXT :: String
+enumPrefixIndirectCommandsInputModeFlagBitsEXT = "INDIRECT_COMMANDS_INPUT_MODE_"
+
+showTableIndirectCommandsInputModeFlagBitsEXT :: [(IndirectCommandsInputModeFlagBitsEXT, String)]
+showTableIndirectCommandsInputModeFlagBitsEXT =
+  [
+    ( INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT
+    , "VULKAN_INDEX_BUFFER_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT
+    , "DXGI_INDEX_BUFFER_EXT"
+    )
+  ]
+
+instance Show IndirectCommandsInputModeFlagBitsEXT where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixIndirectCommandsInputModeFlagBitsEXT
+      showTableIndirectCommandsInputModeFlagBitsEXT
+      conNameIndirectCommandsInputModeFlagBitsEXT
+      (\(IndirectCommandsInputModeFlagBitsEXT x) -> x)
+      (\x -> showString "0x" . showHex x)
+
+instance Read IndirectCommandsInputModeFlagBitsEXT where
+  readPrec =
+    enumReadPrec
+      enumPrefixIndirectCommandsInputModeFlagBitsEXT
+      showTableIndirectCommandsInputModeFlagBitsEXT
+      conNameIndirectCommandsInputModeFlagBitsEXT
+      IndirectCommandsInputModeFlagBitsEXT
+
+-- | VkIndirectCommandsTokenTypeEXT - Enum specifying token commands
+--
+-- = Description
+--
+-- \'
+--
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | __Common Tokens__                                           | __Command Data__                                                                 |
+-- +=============================================================+==================================================================================+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT'            | @u32[]@ array of indices into the indirect execution set                         |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT'            | @u32[]@ raw data                                                                 |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT'           | @u32@ placeholder data (not accessed by shader)                                  |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | __Compute Tokens__                                          |                                                                                  |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT'                 | 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand'                               |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | __Ray Tracing Tokens__                                      |                                                                                  |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT'              | 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.TraceRaysIndirectCommand2KHR' |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | __Graphics State Tokens__                                   |                                                                                  |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT'             | 'BindIndexBufferIndirectCommandEXT'                                              |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT'            | 'BindVertexBufferIndirectCommandEXT'                                             |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | __Graphics Draw Tokens__                                    |                                                                                  |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT'             | 'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'                            |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT'                     | 'Vulkan.Core10.OtherTypes.DrawIndirectCommand'                                   |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT'          | 'Vulkan.Extensions.VK_EXT_mesh_shader.DrawMeshTasksIndirectCommandEXT'           |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT'       | 'Vulkan.Extensions.VK_NV_mesh_shader.DrawMeshTasksIndirectCommandNV'             |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | __Graphics Draw Count Tokens__                              |                                                                                  |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT'       | 'DrawIndirectCountIndirectCommandEXT' with VkDrawIndexedIndirectCommand          |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT'               | 'DrawIndirectCountIndirectCommandEXT' with VkDrawIndirectCommand                 |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT'    | 'DrawIndirectCountIndirectCommandEXT' with VkDrawMeshTasksIndirectCommandEXT     |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT' | 'DrawIndirectCountIndirectCommandEXT' with VkDrawMeshTasksIndirectCommandNV      |
+-- +-------------------------------------------------------------+----------------------------------------------------------------------------------+
+--
+-- Supported Indirect Command Tokens
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>,
+-- 'IndirectCommandsLayoutTokenEXT'
+newtype IndirectCommandsTokenTypeEXT = IndirectCommandsTokenTypeEXT Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT = IndirectCommandsTokenTypeEXT 0
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT = IndirectCommandsTokenTypeEXT 1
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT = IndirectCommandsTokenTypeEXT 2
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT = IndirectCommandsTokenTypeEXT 3
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT = IndirectCommandsTokenTypeEXT 4
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT = IndirectCommandsTokenTypeEXT 5
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT = IndirectCommandsTokenTypeEXT 6
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT = IndirectCommandsTokenTypeEXT 7
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT = IndirectCommandsTokenTypeEXT 8
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT = IndirectCommandsTokenTypeEXT 9
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT = IndirectCommandsTokenTypeEXT 1000386004
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT = IndirectCommandsTokenTypeEXT 1000328001
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT = IndirectCommandsTokenTypeEXT 1000328000
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT = IndirectCommandsTokenTypeEXT 1000202003
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeEXT" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT = IndirectCommandsTokenTypeEXT 1000202002
+
+{-# COMPLETE
+  INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT ::
+    IndirectCommandsTokenTypeEXT
+  #-}
+
+conNameIndirectCommandsTokenTypeEXT :: String
+conNameIndirectCommandsTokenTypeEXT = "IndirectCommandsTokenTypeEXT"
+
+enumPrefixIndirectCommandsTokenTypeEXT :: String
+enumPrefixIndirectCommandsTokenTypeEXT = "INDIRECT_COMMANDS_TOKEN_TYPE_"
+
+showTableIndirectCommandsTokenTypeEXT :: [(IndirectCommandsTokenTypeEXT, String)]
+showTableIndirectCommandsTokenTypeEXT =
+  [
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT
+    , "EXECUTION_SET_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT
+    , "PUSH_CONSTANT_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT
+    , "SEQUENCE_INDEX_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT
+    , "INDEX_BUFFER_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT
+    , "VERTEX_BUFFER_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT
+    , "DRAW_INDEXED_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT
+    , "DRAW_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT
+    , "DRAW_INDEXED_COUNT_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT
+    , "DRAW_COUNT_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT
+    , "DISPATCH_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT
+    , "TRACE_RAYS2_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT
+    , "DRAW_MESH_TASKS_COUNT_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT
+    , "DRAW_MESH_TASKS_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT
+    , "DRAW_MESH_TASKS_COUNT_NV_EXT"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT
+    , "DRAW_MESH_TASKS_NV_EXT"
+    )
+  ]
+
+instance Show IndirectCommandsTokenTypeEXT where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixIndirectCommandsTokenTypeEXT
+      showTableIndirectCommandsTokenTypeEXT
+      conNameIndirectCommandsTokenTypeEXT
+      (\(IndirectCommandsTokenTypeEXT x) -> x)
+      (showsPrec 11)
+
+instance Read IndirectCommandsTokenTypeEXT where
+  readPrec =
+    enumReadPrec
+      enumPrefixIndirectCommandsTokenTypeEXT
+      showTableIndirectCommandsTokenTypeEXT
+      conNameIndirectCommandsTokenTypeEXT
+      IndirectCommandsTokenTypeEXT
+
+type EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION"
+pattern EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION = 1
+
+
+type EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME = "VK_EXT_device_generated_commands"
+
+-- No documentation found for TopLevel "VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME"
+pattern EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME = "VK_EXT_device_generated_commands"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_device_generated_commands.hs-boot b/src/Vulkan/Extensions/VK_EXT_device_generated_commands.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_device_generated_commands.hs-boot
@@ -0,0 +1,598 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_device_generated_commands - device extension
+--
+-- = VK_EXT_device_generated_commands
+--
+-- [__Name String__]
+--     @VK_EXT_device_generated_commands@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     573
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_address VK_KHR_buffer_device_address>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
+--
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_EXT_shader_object
+--
+-- [__Contact__]
+--
+--     -   Mike Blumenkrantz
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_device_generated_commands] @zmike%0A*Here describe the issue or question you have about the VK_EXT_device_generated_commands extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_device_generated_commands.adoc VK_EXT_device_generated_commands>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-02-23
+--
+-- [__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 requires @VK_KHR_maintenance5@ for the ability to
+--         use VkPipelineCreateFlags2KHR.
+--
+--     -   This extension interacts with @VK_NV_mesh_shader@. If the latter
+--         extension is not supported, remove the command tokens to
+--         initiate NV mesh tasks drawing in this extension.
+--
+--     -   This extension interacts with @VK_EXT_mesh_shader@. If the
+--         latter extension is not supported, remove the command tokens to
+--         initiate EXT mesh tasks drawing in this extension.
+--
+--     -   This extension interacts with @VK_KHR_ray_tracing_pipeline@. If
+--         the latter extension is not supported, remove the command tokens
+--         to initiate ray tracing in this extension.
+--
+--     -   This extension interacts with @VK_EXT_shader_object@. If the
+--         latter extension is not supported, remove references to shader
+--         objects in this extension.
+--
+-- [__Contributors__]
+--
+--     -   Mike Blumenkrantz, VALVE
+--
+--     -   Hans-Kristian Arntzen, VALVE
+--
+--     -   Jan-Harald Fredriksen, ARM
+--
+--     -   Spencer Fricke, LunarG
+--
+--     -   Ricardo Garcia, Igalia
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Baldur Karlsson, VALVE
+--
+--     -   Christoph Kubisch, NVIDIA
+--
+--     -   Lionel Landwerlin, INTEL
+--
+--     -   Jon Leech, Khronos
+--
+--     -   Ting Wei, ARM
+--
+--     -   Ken Shanyi Zhang, AMD
+--
+--     -   Faith Ekstrand, Collabora
+--
+--     -   Vikram Kushwaha, NVIDIA
+--
+--     -   Connor Abbott, VALVE
+--
+--     -   Samuel Pitoiset, VALVE
+--
+-- == Description
+--
+-- This extension allows the device to generate a number of commands for
+-- command buffers. It provides a subset of functionality from both
+-- @VK_NV_device_generated_commands@ and
+-- @VK_NV_device_generated_commands_compute@ as well as some new features.
+--
+-- 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.
+--
+-- To render objects which have been processed on the device, Vulkan has
+-- several ways to perform indirect rendering, from the most basic
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect' with one indirect
+-- draw to
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndirectCount'
+-- which supports multiple indirect draws batched together, with a way to
+-- determine number of draws at device execution time.
+--
+-- However, if rendering state needs to change between the indirect draws,
+-- then unextended Vulkan forces the application to speculatively record a
+-- prohibitive number of redundant indirect commands covering all possible
+-- state combinations - which could end up processing nothing after culling
+-- - or 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 and shader object 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.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress'
+--
+-- -   create a 'Vulkan.Extensions.Handles.IndirectExecutionSetEXT' for the
+--     ability to change shaders on the device.
+--
+-- -   create a 'Vulkan.Extensions.Handles.IndirectCommandsLayoutEXT',
+--     which lists the 'IndirectCommandsTokenTypeEXT' 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 based on the layout.
+--
+-- -   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
+--     'getGeneratedCommandsMemoryRequirementsEXT'.
+--
+-- -   optionally preprocess the generated content using
+--     'cmdPreprocessGeneratedCommandsEXT', for example on an asynchronous
+--     compute queue, or for the purpose of re-using the data in multiple
+--     executions.
+--
+-- -   call 'cmdExecuteGeneratedCommandsEXT' 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 number of vertex buffer bindings
+--
+-- -   a different index buffer, with an optional dynamic offset and index
+--     type
+--
+-- -   a number of different push constants
+--
+-- -   updates to bound shader stages
+--
+-- For each dispatch in a sequence, the following can be specified:
+--
+-- -   a number of different push constants
+--
+-- -   updates to bound shader stages
+--
+-- For each trace rays in a sequence, the following can be specified:
+--
+-- -   a number of different push constants
+--
+-- -   updates to bound shader stages
+--
+-- 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.IndirectCommandsLayoutEXT'
+--
+-- -   'Vulkan.Extensions.Handles.IndirectExecutionSetEXT'
+--
+-- == New Commands
+--
+-- -   'cmdExecuteGeneratedCommandsEXT'
+--
+-- -   'cmdPreprocessGeneratedCommandsEXT'
+--
+-- -   'createIndirectCommandsLayoutEXT'
+--
+-- -   'createIndirectExecutionSetEXT'
+--
+-- -   'destroyIndirectCommandsLayoutEXT'
+--
+-- -   'destroyIndirectExecutionSetEXT'
+--
+-- -   'getGeneratedCommandsMemoryRequirementsEXT'
+--
+-- -   'updateIndirectExecutionSetPipelineEXT'
+--
+-- -   'updateIndirectExecutionSetShaderEXT'
+--
+-- == New Structures
+--
+-- -   'BindIndexBufferIndirectCommandEXT'
+--
+-- -   'BindVertexBufferIndirectCommandEXT'
+--
+-- -   'DrawIndirectCountIndirectCommandEXT'
+--
+-- -   'GeneratedCommandsInfoEXT'
+--
+-- -   'GeneratedCommandsMemoryRequirementsInfoEXT'
+--
+-- -   'IndirectCommandsExecutionSetTokenEXT'
+--
+-- -   'IndirectCommandsIndexBufferTokenEXT'
+--
+-- -   'IndirectCommandsLayoutCreateInfoEXT'
+--
+-- -   'IndirectCommandsLayoutTokenEXT'
+--
+-- -   'IndirectCommandsPushConstantTokenEXT'
+--
+-- -   'IndirectCommandsVertexBufferTokenEXT'
+--
+-- -   'IndirectExecutionSetCreateInfoEXT'
+--
+-- -   'IndirectExecutionSetPipelineInfoEXT'
+--
+-- -   'IndirectExecutionSetShaderInfoEXT'
+--
+-- -   'IndirectExecutionSetShaderLayoutInfoEXT'
+--
+-- -   'WriteIndirectExecutionSetPipelineEXT'
+--
+-- -   Extending 'GeneratedCommandsInfoEXT',
+--     'GeneratedCommandsMemoryRequirementsInfoEXT':
+--
+--     -   'GeneratedCommandsPipelineInfoEXT'
+--
+--     -   'GeneratedCommandsShaderInfoEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>
+-- is supported:
+--
+-- -   'WriteIndirectExecutionSetShaderEXT'
+--
+-- == New Unions
+--
+-- -   'IndirectCommandsTokenDataEXT'
+--
+-- -   'IndirectExecutionSetInfoEXT'
+--
+-- == New Enums
+--
+-- -   'IndirectCommandsInputModeFlagBitsEXT'
+--
+-- -   'IndirectCommandsLayoutUsageFlagBitsEXT'
+--
+-- -   'IndirectCommandsTokenTypeEXT'
+--
+-- -   'IndirectExecutionSetInfoTypeEXT'
+--
+-- == New Bitmasks
+--
+-- -   'IndirectCommandsInputModeFlagsEXT'
+--
+-- -   'IndirectCommandsLayoutUsageFlagsEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME'
+--
+-- -   'EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':
+--
+--     -   'ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT'
+--
+--     -   'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_maintenance5.BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':
+--
+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':
+--
+--     -   'PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_shader_object.ShaderCreateFlagBitsEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT'
+--
+-- == Example Code
+--
+-- TODO
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-02-23 (Mike Blumenkrantz)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_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_EXT_device_generated_commands  ( BindIndexBufferIndirectCommandEXT
+                                                           , BindVertexBufferIndirectCommandEXT
+                                                           , DrawIndirectCountIndirectCommandEXT
+                                                           , GeneratedCommandsInfoEXT
+                                                           , GeneratedCommandsMemoryRequirementsInfoEXT
+                                                           , GeneratedCommandsPipelineInfoEXT
+                                                           , GeneratedCommandsShaderInfoEXT
+                                                           , IndirectCommandsExecutionSetTokenEXT
+                                                           , IndirectCommandsIndexBufferTokenEXT
+                                                           , IndirectCommandsLayoutCreateInfoEXT
+                                                           , IndirectCommandsLayoutTokenEXT
+                                                           , IndirectCommandsPushConstantTokenEXT
+                                                           , IndirectCommandsVertexBufferTokenEXT
+                                                           , IndirectExecutionSetCreateInfoEXT
+                                                           , IndirectExecutionSetPipelineInfoEXT
+                                                           , IndirectExecutionSetShaderInfoEXT
+                                                           , IndirectExecutionSetShaderLayoutInfoEXT
+                                                           , PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
+                                                           , PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
+                                                           , WriteIndirectExecutionSetPipelineEXT
+                                                           , WriteIndirectExecutionSetShaderEXT
+                                                           ) 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 BindIndexBufferIndirectCommandEXT
+
+instance ToCStruct BindIndexBufferIndirectCommandEXT
+instance Show BindIndexBufferIndirectCommandEXT
+
+instance FromCStruct BindIndexBufferIndirectCommandEXT
+
+
+data BindVertexBufferIndirectCommandEXT
+
+instance ToCStruct BindVertexBufferIndirectCommandEXT
+instance Show BindVertexBufferIndirectCommandEXT
+
+instance FromCStruct BindVertexBufferIndirectCommandEXT
+
+
+data DrawIndirectCountIndirectCommandEXT
+
+instance ToCStruct DrawIndirectCountIndirectCommandEXT
+instance Show DrawIndirectCountIndirectCommandEXT
+
+instance FromCStruct DrawIndirectCountIndirectCommandEXT
+
+
+type role GeneratedCommandsInfoEXT nominal
+data GeneratedCommandsInfoEXT (es :: [Type])
+
+instance ( Extendss GeneratedCommandsInfoEXT es
+         , PokeChain es ) => ToCStruct (GeneratedCommandsInfoEXT es)
+instance Show (Chain es) => Show (GeneratedCommandsInfoEXT es)
+
+instance ( Extendss GeneratedCommandsInfoEXT es
+         , PeekChain es ) => FromCStruct (GeneratedCommandsInfoEXT es)
+
+
+type role GeneratedCommandsMemoryRequirementsInfoEXT nominal
+data GeneratedCommandsMemoryRequirementsInfoEXT (es :: [Type])
+
+instance ( Extendss GeneratedCommandsMemoryRequirementsInfoEXT es
+         , PokeChain es ) => ToCStruct (GeneratedCommandsMemoryRequirementsInfoEXT es)
+instance Show (Chain es) => Show (GeneratedCommandsMemoryRequirementsInfoEXT es)
+
+instance ( Extendss GeneratedCommandsMemoryRequirementsInfoEXT es
+         , PeekChain es ) => FromCStruct (GeneratedCommandsMemoryRequirementsInfoEXT es)
+
+
+data GeneratedCommandsPipelineInfoEXT
+
+instance ToCStruct GeneratedCommandsPipelineInfoEXT
+instance Show GeneratedCommandsPipelineInfoEXT
+
+instance FromCStruct GeneratedCommandsPipelineInfoEXT
+
+
+data GeneratedCommandsShaderInfoEXT
+
+instance ToCStruct GeneratedCommandsShaderInfoEXT
+instance Show GeneratedCommandsShaderInfoEXT
+
+instance FromCStruct GeneratedCommandsShaderInfoEXT
+
+
+data IndirectCommandsExecutionSetTokenEXT
+
+instance ToCStruct IndirectCommandsExecutionSetTokenEXT
+instance Show IndirectCommandsExecutionSetTokenEXT
+
+instance FromCStruct IndirectCommandsExecutionSetTokenEXT
+
+
+data IndirectCommandsIndexBufferTokenEXT
+
+instance ToCStruct IndirectCommandsIndexBufferTokenEXT
+instance Show IndirectCommandsIndexBufferTokenEXT
+
+instance FromCStruct IndirectCommandsIndexBufferTokenEXT
+
+
+type role IndirectCommandsLayoutCreateInfoEXT nominal
+data IndirectCommandsLayoutCreateInfoEXT (es :: [Type])
+
+instance ( Extendss IndirectCommandsLayoutCreateInfoEXT es
+         , PokeChain es ) => ToCStruct (IndirectCommandsLayoutCreateInfoEXT es)
+instance Show (Chain es) => Show (IndirectCommandsLayoutCreateInfoEXT es)
+
+
+data IndirectCommandsLayoutTokenEXT
+
+instance ToCStruct IndirectCommandsLayoutTokenEXT
+instance Show IndirectCommandsLayoutTokenEXT
+
+
+data IndirectCommandsPushConstantTokenEXT
+
+instance ToCStruct IndirectCommandsPushConstantTokenEXT
+instance Show IndirectCommandsPushConstantTokenEXT
+
+instance FromCStruct IndirectCommandsPushConstantTokenEXT
+
+
+data IndirectCommandsVertexBufferTokenEXT
+
+instance ToCStruct IndirectCommandsVertexBufferTokenEXT
+instance Show IndirectCommandsVertexBufferTokenEXT
+
+instance FromCStruct IndirectCommandsVertexBufferTokenEXT
+
+
+data IndirectExecutionSetCreateInfoEXT
+
+instance ToCStruct IndirectExecutionSetCreateInfoEXT
+instance Show IndirectExecutionSetCreateInfoEXT
+
+
+data IndirectExecutionSetPipelineInfoEXT
+
+instance ToCStruct IndirectExecutionSetPipelineInfoEXT
+instance Show IndirectExecutionSetPipelineInfoEXT
+
+instance FromCStruct IndirectExecutionSetPipelineInfoEXT
+
+
+data IndirectExecutionSetShaderInfoEXT
+
+instance ToCStruct IndirectExecutionSetShaderInfoEXT
+instance Show IndirectExecutionSetShaderInfoEXT
+
+instance FromCStruct IndirectExecutionSetShaderInfoEXT
+
+
+data IndirectExecutionSetShaderLayoutInfoEXT
+
+instance ToCStruct IndirectExecutionSetShaderLayoutInfoEXT
+instance Show IndirectExecutionSetShaderLayoutInfoEXT
+
+instance FromCStruct IndirectExecutionSetShaderLayoutInfoEXT
+
+
+data PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
+
+instance ToCStruct PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
+instance Show PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
+
+instance FromCStruct PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
+
+
+data PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
+
+instance ToCStruct PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
+instance Show PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
+
+instance FromCStruct PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
+
+
+data WriteIndirectExecutionSetPipelineEXT
+
+instance ToCStruct WriteIndirectExecutionSetPipelineEXT
+instance Show WriteIndirectExecutionSetPipelineEXT
+
+instance FromCStruct WriteIndirectExecutionSetPipelineEXT
+
+
+data WriteIndirectExecutionSetShaderEXT
+
+instance ToCStruct WriteIndirectExecutionSetShaderEXT
+instance Show WriteIndirectExecutionSetShaderEXT
+
+instance FromCStruct WriteIndirectExecutionSetShaderEXT
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_device_memory_report - device extension
 --
--- == VK_EXT_device_memory_report
+-- = VK_EXT_device_memory_report
 --
 -- [__Name String__]
 --     @VK_EXT_device_memory_report@
@@ -18,10 +18,12 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -146,11 +148,11 @@
 -- interesting cases for tracking how populated that VA region is.
 --
 -- The callbacks are clearly specified as only callable within the context
--- of a call from the app into Vulkan. We believe there are some cases
--- where drivers can allocate device memory asynchronously. This was one of
--- the sticky issues that derailed the internal device memory allocation
--- reporting design (which is essentially what this extension is trying to
--- do) leading up to 1.0.
+-- of a call from the application into Vulkan. We believe there are some
+-- cases where drivers can allocate device memory asynchronously. This was
+-- one of the sticky issues that derailed the internal device memory
+-- allocation reporting design (which is essentially what this extension is
+-- trying to do) leading up to 1.0.
 --
 -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' is described in
 -- a section called “Host memory” and the intro to it is very explicitly
@@ -207,7 +209,7 @@
 -- __RESOLVED__ Yes. This fits in well with the callback infrastructure
 -- added in this extension, and implementation touches the same code and
 -- has the same overheads as the rest of the extension. It could help
--- debugging things like getting an
+-- debugging things like getting a
 -- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' error when ending
 -- a command buffer. Right now the allocation failure could have happened
 -- anywhere during recording, and a callback would be really useful to
@@ -225,11 +227,7 @@
 --
 -- == See Also
 --
--- 'PFN_vkDeviceMemoryReportCallbackEXT',
--- 'DeviceDeviceMemoryReportCreateInfoEXT',
--- 'DeviceMemoryReportCallbackDataEXT', 'DeviceMemoryReportEventTypeEXT',
--- 'DeviceMemoryReportFlagsEXT',
--- 'PhysicalDeviceDeviceMemoryReportFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -379,8 +377,6 @@
 -- The callback /must/ be called only once by the implementation when a
 -- 'DeviceMemoryReportEventTypeEXT' event occurs.
 --
--- Note
---
 -- The callback could be called from a background thread other than the
 -- thread calling the Vulkan commands.
 --
@@ -476,8 +472,6 @@
 -- 'Vulkan.Core10.Handles.DeviceMemory' is backed by an imported external
 -- memory object, @memoryObjectId@ /must/ be unique system wide.
 --
--- Note
---
 -- This structure should only be considered valid during the lifetime of
 -- the triggered callback.
 --
@@ -492,6 +486,7 @@
 --
 -- = See Also
 --
+-- 'PFN_vkDeviceMemoryReportCallbackEXT',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_memory_report VK_EXT_device_memory_report>,
 -- 'DeviceMemoryReportEventTypeEXT', 'DeviceMemoryReportFlagsEXT',
 -- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
@@ -616,7 +611,8 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_memory_report VK_EXT_device_memory_report>,
 -- 'DeviceDeviceMemoryReportCreateInfoEXT',
--- 'DeviceMemoryReportCallbackDataEXT'
+-- 'DeviceMemoryReportCallbackDataEXT',
+-- 'Vulkan.Core10.FundamentalTypes.Flags'
 newtype DeviceMemoryReportFlagsEXT = DeviceMemoryReportFlagsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
@@ -746,7 +742,8 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_memory_report VK_EXT_device_memory_report>,
--- 'DeviceDeviceMemoryReportCreateInfoEXT'
+-- 'DeviceDeviceMemoryReportCreateInfoEXT',
+-- 'DeviceMemoryReportCallbackDataEXT'
 type PFN_vkDeviceMemoryReportCallbackEXT = FunPtr FN_vkDeviceMemoryReportCallbackEXT
 
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_device_memory_report - device extension
 --
--- == VK_EXT_device_memory_report
+-- = VK_EXT_device_memory_report
 --
 -- [__Name String__]
 --     @VK_EXT_device_memory_report@
@@ -18,10 +18,12 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -146,11 +148,11 @@
 -- interesting cases for tracking how populated that VA region is.
 --
 -- The callbacks are clearly specified as only callable within the context
--- of a call from the app into Vulkan. We believe there are some cases
--- where drivers can allocate device memory asynchronously. This was one of
--- the sticky issues that derailed the internal device memory allocation
--- reporting design (which is essentially what this extension is trying to
--- do) leading up to 1.0.
+-- of a call from the application into Vulkan. We believe there are some
+-- cases where drivers can allocate device memory asynchronously. This was
+-- one of the sticky issues that derailed the internal device memory
+-- allocation reporting design (which is essentially what this extension is
+-- trying to do) leading up to 1.0.
 --
 -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' is described in
 -- a section called “Host memory” and the intro to it is very explicitly
@@ -207,7 +209,7 @@
 -- __RESOLVED__ Yes. This fits in well with the callback infrastructure
 -- added in this extension, and implementation touches the same code and
 -- has the same overheads as the rest of the extension. It could help
--- debugging things like getting an
+-- debugging things like getting a
 -- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' error when ending
 -- a command buffer. Right now the allocation failure could have happened
 -- anywhere during recording, and a callback would be really useful to
@@ -225,11 +227,7 @@
 --
 -- == See Also
 --
--- 'PFN_vkDeviceMemoryReportCallbackEXT',
--- 'DeviceDeviceMemoryReportCreateInfoEXT',
--- 'DeviceMemoryReportCallbackDataEXT', 'DeviceMemoryReportEventTypeEXT',
--- 'DeviceMemoryReportFlagsEXT',
--- 'PhysicalDeviceDeviceMemoryReportFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_direct_mode_display - instance extension
 --
--- == VK_EXT_direct_mode_display
+-- = VK_EXT_direct_mode_display
 --
 -- [__Name String__]
 --     @VK_EXT_direct_mode_display@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display VK_KHR_display>
@@ -94,7 +94,7 @@
 --
 -- == See Also
 --
--- 'releaseDisplayEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -146,6 +146,9 @@
 -- [<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>]
+--     None
 --
 -- = See Also
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_directfb_surface - instance extension
 --
--- == VK_EXT_directfb_surface
+-- = VK_EXT_directfb_surface
 --
 -- [__Name String__]
 --     @VK_EXT_directfb_surface@
@@ -80,9 +80,7 @@
 --
 -- == See Also
 --
--- 'DirectFBSurfaceCreateFlagsEXT', 'DirectFBSurfaceCreateInfoEXT',
--- 'createDirectFBSurfaceEXT',
--- 'getPhysicalDeviceDirectFBPresentationSupportEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -392,7 +390,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_directfb_surface VK_EXT_directfb_surface>,
--- 'DirectFBSurfaceCreateInfoEXT'
+-- 'DirectFBSurfaceCreateInfoEXT', 'Vulkan.Core10.FundamentalTypes.Flags'
 newtype DirectFBSurfaceCreateFlagsEXT = DirectFBSurfaceCreateFlagsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_directfb_surface - instance extension
 --
--- == VK_EXT_directfb_surface
+-- = VK_EXT_directfb_surface
 --
 -- [__Name String__]
 --     @VK_EXT_directfb_surface@
@@ -80,9 +80,7 @@
 --
 -- == See Also
 --
--- 'DirectFBSurfaceCreateFlagsEXT', 'DirectFBSurfaceCreateInfoEXT',
--- 'createDirectFBSurfaceEXT',
--- 'getPhysicalDeviceDirectFBPresentationSupportEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_discard_rectangles - device extension
 --
--- == VK_EXT_discard_rectangles
+-- = VK_EXT_discard_rectangles
 --
 -- [__Name String__]
 --     @VK_EXT_discard_rectangles@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -135,12 +135,7 @@
 --
 -- == See Also
 --
--- 'DiscardRectangleModeEXT',
--- 'PhysicalDeviceDiscardRectanglePropertiesEXT',
--- 'PipelineDiscardRectangleStateCreateFlagsEXT',
--- 'PipelineDiscardRectangleStateCreateInfoEXT',
--- 'cmdSetDiscardRectangleEXT', 'cmdSetDiscardRectangleEnableEXT',
--- 'cmdSetDiscardRectangleModeEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -714,6 +709,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_discard_rectangles VK_EXT_discard_rectangles>,
+-- 'Vulkan.Core10.FundamentalTypes.Flags',
 -- 'PipelineDiscardRectangleStateCreateInfoEXT'
 newtype PipelineDiscardRectangleStateCreateFlagsEXT = PipelineDiscardRectangleStateCreateFlagsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_discard_rectangles - device extension
 --
--- == VK_EXT_discard_rectangles
+-- = VK_EXT_discard_rectangles
 --
 -- [__Name String__]
 --     @VK_EXT_discard_rectangles@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -135,12 +135,7 @@
 --
 -- == See Also
 --
--- 'DiscardRectangleModeEXT',
--- 'PhysicalDeviceDiscardRectanglePropertiesEXT',
--- 'PipelineDiscardRectangleStateCreateFlagsEXT',
--- 'PipelineDiscardRectangleStateCreateInfoEXT',
--- 'cmdSetDiscardRectangleEXT', 'cmdSetDiscardRectangleEnableEXT',
--- 'cmdSetDiscardRectangleModeEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_display_control - device extension
 --
--- == VK_EXT_display_control
+-- = VK_EXT_display_control
 --
 -- [__Name String__]
 --     @VK_EXT_display_control@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
@@ -137,11 +137,7 @@
 --
 -- == See Also
 --
--- 'DeviceEventInfoEXT', 'DeviceEventTypeEXT', 'DisplayEventInfoEXT',
--- 'DisplayEventTypeEXT', 'DisplayPowerInfoEXT', 'DisplayPowerStateEXT',
--- 'SwapchainCounterCreateInfoEXT', 'displayPowerControlEXT',
--- 'getSwapchainCounterEXT', 'registerDeviceEventEXT',
--- 'registerDisplayEventEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_display_control - device extension
 --
--- == VK_EXT_display_control
+-- = VK_EXT_display_control
 --
 -- [__Name String__]
 --     @VK_EXT_display_control@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
@@ -137,11 +137,7 @@
 --
 -- == See Also
 --
--- 'DeviceEventInfoEXT', 'DeviceEventTypeEXT', 'DisplayEventInfoEXT',
--- 'DisplayEventTypeEXT', 'DisplayPowerInfoEXT', 'DisplayPowerStateEXT',
--- 'SwapchainCounterCreateInfoEXT', 'displayPowerControlEXT',
--- 'getSwapchainCounterEXT', 'registerDeviceEventEXT',
--- 'registerDisplayEventEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_display_surface_counter - instance extension
 --
--- == VK_EXT_display_surface_counter
+-- = VK_EXT_display_surface_counter
 --
 -- [__Name String__]
 --     @VK_EXT_display_surface_counter@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display VK_KHR_display>
@@ -90,8 +90,7 @@
 --
 -- == See Also
 --
--- 'SurfaceCapabilities2EXT', 'SurfaceCounterFlagBitsEXT',
--- 'SurfaceCounterFlagsEXT', 'getPhysicalDeviceSurfaceCapabilities2EXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -353,6 +352,7 @@
     -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' representing
     -- the ways the application /can/ use the presentable images of a swapchain
     -- created with 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR' set to
+    -- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_LATEST_READY_EXT',
     -- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_IMMEDIATE_KHR',
     -- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR',
     -- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_KHR' or
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_display_surface_counter - instance extension
 --
--- == VK_EXT_display_surface_counter
+-- = VK_EXT_display_surface_counter
 --
 -- [__Name String__]
 --     @VK_EXT_display_surface_counter@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display VK_KHR_display>
@@ -90,8 +90,7 @@
 --
 -- == See Also
 --
--- 'SurfaceCapabilities2EXT', 'SurfaceCounterFlagBitsEXT',
--- 'SurfaceCounterFlagsEXT', 'getPhysicalDeviceSurfaceCapabilities2EXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs b/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs
--- a/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs
+++ b/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_dynamic_rendering_unused_attachments - device extension
 --
--- == VK_EXT_dynamic_rendering_unused_attachments
+-- = VK_EXT_dynamic_rendering_unused_attachments
 --
 -- [__Name String__]
 --     @VK_EXT_dynamic_rendering_unused_attachments@
@@ -21,17 +21,16 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -103,7 +102,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -179,7 +178,7 @@
     -- '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
+    -- element with an @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
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
--- a/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_dynamic_rendering_unused_attachments - device extension
 --
--- == VK_EXT_dynamic_rendering_unused_attachments
+-- = VK_EXT_dynamic_rendering_unused_attachments
 --
 -- [__Name String__]
 --     @VK_EXT_dynamic_rendering_unused_attachments@
@@ -21,17 +21,16 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -103,7 +102,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_extended_dynamic_state - device extension
 --
--- == VK_EXT_extended_dynamic_state
+-- = VK_EXT_extended_dynamic_state
 --
 -- [__Name String__]
 --     @VK_EXT_extended_dynamic_state@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -144,8 +144,8 @@
 -- == Promotion to Vulkan 1.3
 --
 -- This extension has been partially promoted. All dynamic state enumerants
--- and entry points in this extension are included in core Vulkan 1.3, with
--- the EXT suffix omitted. The feature structure is not promoted. Extension
+-- and commands in this extension are included in core Vulkan 1.3, with the
+-- EXT suffix omitted. The feature structure is not promoted. Extension
 -- interfaces that were promoted remain available as aliases of the core
 -- functionality.
 --
@@ -172,13 +172,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceExtendedDynamicStateFeaturesEXT',
--- 'cmdBindVertexBuffers2EXT', 'cmdSetCullModeEXT',
--- 'cmdSetDepthBoundsTestEnableEXT', 'cmdSetDepthCompareOpEXT',
--- 'cmdSetDepthTestEnableEXT', 'cmdSetDepthWriteEnableEXT',
--- 'cmdSetFrontFaceEXT', 'cmdSetPrimitiveTopologyEXT',
--- 'cmdSetScissorWithCountEXT', 'cmdSetStencilOpEXT',
--- 'cmdSetStencilTestEnableEXT', 'cmdSetViewportWithCountEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_extended_dynamic_state - device extension
 --
--- == VK_EXT_extended_dynamic_state
+-- = VK_EXT_extended_dynamic_state
 --
 -- [__Name String__]
 --     @VK_EXT_extended_dynamic_state@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -144,8 +144,8 @@
 -- == Promotion to Vulkan 1.3
 --
 -- This extension has been partially promoted. All dynamic state enumerants
--- and entry points in this extension are included in core Vulkan 1.3, with
--- the EXT suffix omitted. The feature structure is not promoted. Extension
+-- and commands in this extension are included in core Vulkan 1.3, with the
+-- EXT suffix omitted. The feature structure is not promoted. Extension
 -- interfaces that were promoted remain available as aliases of the core
 -- functionality.
 --
@@ -172,13 +172,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceExtendedDynamicStateFeaturesEXT',
--- 'cmdBindVertexBuffers2EXT', 'cmdSetCullModeEXT',
--- 'cmdSetDepthBoundsTestEnableEXT', 'cmdSetDepthCompareOpEXT',
--- 'cmdSetDepthTestEnableEXT', 'cmdSetDepthWriteEnableEXT',
--- 'cmdSetFrontFaceEXT', 'cmdSetPrimitiveTopologyEXT',
--- 'cmdSetScissorWithCountEXT', 'cmdSetStencilOpEXT',
--- 'cmdSetStencilTestEnableEXT', 'cmdSetViewportWithCountEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_extended_dynamic_state2 - device extension
 --
--- == VK_EXT_extended_dynamic_state2
+-- = VK_EXT_extended_dynamic_state2
 --
 -- [__Name String__]
 --     @VK_EXT_extended_dynamic_state2@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -105,11 +105,11 @@
 -- 'DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT',
 -- 'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT', and
 -- 'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'; and the corresponding
--- entry points in this extension are included in core Vulkan 1.3, with the
--- EXT suffix omitted. The enumerants and entry points for dynamic logic
--- operation and patch control points are not promoted, nor is the feature
--- structure. Extension interfaces that were promoted remain available as
--- aliases of the core functionality.
+-- commands in this extension are included in core Vulkan 1.3, with the EXT
+-- suffix omitted. The enumerants and commands for dynamic logic operation
+-- and patch control points are not promoted, nor is the feature structure.
+-- Extension interfaces that were promoted remain available as aliases of
+-- the core functionality.
 --
 -- == Version History
 --
@@ -119,10 +119,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceExtendedDynamicState2FeaturesEXT',
--- 'cmdSetDepthBiasEnableEXT', 'cmdSetLogicOpEXT',
--- 'cmdSetPatchControlPointsEXT', 'cmdSetPrimitiveRestartEnableEXT',
--- 'cmdSetRasterizerDiscardEnableEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_extended_dynamic_state2 - device extension
 --
--- == VK_EXT_extended_dynamic_state2
+-- = VK_EXT_extended_dynamic_state2
 --
 -- [__Name String__]
 --     @VK_EXT_extended_dynamic_state2@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -105,11 +105,11 @@
 -- 'DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT',
 -- 'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT', and
 -- 'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'; and the corresponding
--- entry points in this extension are included in core Vulkan 1.3, with the
--- EXT suffix omitted. The enumerants and entry points for dynamic logic
--- operation and patch control points are not promoted, nor is the feature
--- structure. Extension interfaces that were promoted remain available as
--- aliases of the core functionality.
+-- commands in this extension are included in core Vulkan 1.3, with the EXT
+-- suffix omitted. The enumerants and commands for dynamic logic operation
+-- and patch control points are not promoted, nor is the feature structure.
+-- Extension interfaces that were promoted remain available as aliases of
+-- the core functionality.
 --
 -- == Version History
 --
@@ -119,10 +119,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceExtendedDynamicState2FeaturesEXT',
--- 'cmdSetDepthBiasEnableEXT', 'cmdSetLogicOpEXT',
--- 'cmdSetPatchControlPointsEXT', 'cmdSetPrimitiveRestartEnableEXT',
--- 'cmdSetRasterizerDiscardEnableEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_extended_dynamic_state3 - device extension
 --
--- == VK_EXT_extended_dynamic_state3
+-- = VK_EXT_extended_dynamic_state3
 --
 -- [__Name String__]
 --     @VK_EXT_extended_dynamic_state3@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
@@ -59,6 +61,24 @@
 --
 --     -   Interacts with VK_NV_viewport_swizzle
 --
+--     -   Interacts with
+--         VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3AlphaToOneEnable
+--
+--     -   Interacts with
+--         VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3DepthClampEnable
+--
+--     -   Interacts with
+--         VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3LogicOpEnable
+--
+--     -   Interacts with
+--         VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3PolygonMode
+--
+--     -   Interacts with
+--         VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3RasterizationStream
+--
+--     -   Interacts with
+--         VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3TessellationDomainOrigin
+--
 -- [__Contact__]
 --
 --     -   Piers Daniell
@@ -180,7 +200,7 @@
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance2 VK_KHR_maintenance2>
 -- or
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'cmdSetTessellationDomainOriginEXT'
@@ -355,7 +375,7 @@
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance2 VK_KHR_maintenance2>
 -- or
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
@@ -449,14 +469,7 @@
 --
 -- == See Also
 --
--- 'ColorBlendAdvancedEXT', 'ColorBlendEquationEXT',
--- 'PhysicalDeviceExtendedDynamicState3FeaturesEXT',
--- 'PhysicalDeviceExtendedDynamicState3PropertiesEXT',
--- 'cmdSetAlphaToCoverageEnableEXT', 'cmdSetAlphaToOneEnableEXT',
--- 'cmdSetColorBlendEnableEXT', 'cmdSetColorBlendEquationEXT',
--- 'cmdSetColorWriteMaskEXT', 'cmdSetDepthClampEnableEXT',
--- 'cmdSetLogicOpEnableEXT', 'cmdSetPolygonModeEXT',
--- 'cmdSetRasterizationSamplesEXT', 'cmdSetSampleMaskEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -773,7 +786,7 @@
 --
 -- -   #VUID-vkCmdSetDepthClampEnableEXT-depthClamp-07449# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is not enabled, @depthClampEnable@ must be
+--     feature is not enabled, @depthClampEnable@ /must/ be
 --     'Vulkan.Core10.FundamentalTypes.FALSE'
 --
 -- == Valid Usage (Implicit)
@@ -1710,8 +1723,6 @@
 -- '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',
@@ -2151,8 +2162,7 @@
 -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
 -- Otherwise, this state is specified by the
 -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'::@depthClipEnable@
--- value used to create the currently active pipeline, or is set to the
--- inverse of
+-- value used to create the currently active pipeline, or by the inverse of
 -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthClampEnable@
 -- if
 -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'
@@ -4636,9 +4646,9 @@
     -- value specifying how the source and destination sample’s coverage is
     -- correlated.
     blendOverlap :: BlendOverlapEXT
-  , -- | @clampResults@ specifies the results must be clamped to the [0,1] range
-    -- before writing to the attachment, which is useful when the attachment
-    -- format is not normalized fixed-point.
+  , -- | @clampResults@ specifies that results /must/ be clamped to the [0,1]
+    -- range before writing to the attachment, which is useful when the
+    -- attachment format is not normalized fixed-point.
     clampResults :: Bool
   }
   deriving (Typeable, Eq)
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_extended_dynamic_state3 - device extension
 --
--- == VK_EXT_extended_dynamic_state3
+-- = VK_EXT_extended_dynamic_state3
 --
 -- [__Name String__]
 --     @VK_EXT_extended_dynamic_state3@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
@@ -59,6 +61,24 @@
 --
 --     -   Interacts with VK_NV_viewport_swizzle
 --
+--     -   Interacts with
+--         VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3AlphaToOneEnable
+--
+--     -   Interacts with
+--         VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3DepthClampEnable
+--
+--     -   Interacts with
+--         VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3LogicOpEnable
+--
+--     -   Interacts with
+--         VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3PolygonMode
+--
+--     -   Interacts with
+--         VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3RasterizationStream
+--
+--     -   Interacts with
+--         VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3TessellationDomainOrigin
+--
 -- [__Contact__]
 --
 --     -   Piers Daniell
@@ -180,7 +200,7 @@
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance2 VK_KHR_maintenance2>
 -- or
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'cmdSetTessellationDomainOriginEXT'
@@ -355,7 +375,7 @@
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance2 VK_KHR_maintenance2>
 -- or
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
@@ -449,14 +469,7 @@
 --
 -- == See Also
 --
--- 'ColorBlendAdvancedEXT', 'ColorBlendEquationEXT',
--- 'PhysicalDeviceExtendedDynamicState3FeaturesEXT',
--- 'PhysicalDeviceExtendedDynamicState3PropertiesEXT',
--- 'cmdSetAlphaToCoverageEnableEXT', 'cmdSetAlphaToOneEnableEXT',
--- 'cmdSetColorBlendEnableEXT', 'cmdSetColorBlendEquationEXT',
--- 'cmdSetColorWriteMaskEXT', 'cmdSetDepthClampEnableEXT',
--- 'cmdSetLogicOpEnableEXT', 'cmdSetPolygonModeEXT',
--- 'cmdSetRasterizationSamplesEXT', 'cmdSetSampleMaskEXT'
+-- No cross-references are available
 --
 -- == 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
--- a/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs
+++ b/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_external_memory_acquire_unmodified - device extension
 --
--- == VK_EXT_external_memory_acquire_unmodified
+-- = VK_EXT_external_memory_acquire_unmodified
 --
 -- [__Name String__]
 --     @VK_EXT_external_memory_acquire_unmodified@
@@ -22,11 +22,13 @@
 --
 -- [__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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__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* >
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_external_memory_acquire_unmodified] @linyaa-kiwi%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>
@@ -82,7 +84,7 @@
 --
 -- == See Also
 --
--- 'ExternalMemoryAcquireUnmodifiedEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -145,8 +147,6 @@
 -- 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.
@@ -173,7 +173,7 @@
 --     <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.
+--     resource’s most recent release of ownership to the queue family
 --
 -- == Valid Usage (Implicit)
 --
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
--- a/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_external_memory_acquire_unmodified - device extension
 --
--- == VK_EXT_external_memory_acquire_unmodified
+-- = VK_EXT_external_memory_acquire_unmodified
 --
 -- [__Name String__]
 --     @VK_EXT_external_memory_acquire_unmodified@
@@ -22,11 +22,13 @@
 --
 -- [__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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__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* >
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_external_memory_acquire_unmodified] @linyaa-kiwi%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>
@@ -82,7 +84,7 @@
 --
 -- == See Also
 --
--- 'ExternalMemoryAcquireUnmodifiedEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_external_memory_dma_buf - device extension
 --
--- == VK_EXT_external_memory_dma_buf
+-- = VK_EXT_external_memory_dma_buf
 --
 -- [__Name String__]
 --     @VK_EXT_external_memory_dma_buf@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
@@ -26,7 +26,7 @@
 -- [__Contact__]
 --
 --     -   Lina Versace
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_external_memory_dma_buf] @versalinyaa%0A*Here describe the issue or question you have about the VK_EXT_external_memory_dma_buf extension* >
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_external_memory_dma_buf] @linyaa-kiwi%0A*Here describe the issue or question you have about the VK_EXT_external_memory_dma_buf extension* >
 --
 -- == Other Extension Metadata
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_external_memory_host - device extension
 --
--- == VK_EXT_external_memory_host
+-- = VK_EXT_external_memory_host
 --
 -- [__Name String__]
 --     @VK_EXT_external_memory_host@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -160,9 +160,7 @@
 --
 -- == See Also
 --
--- 'ImportMemoryHostPointerInfoEXT', 'MemoryHostPointerPropertiesEXT',
--- 'PhysicalDeviceExternalMemoryHostPropertiesEXT',
--- 'getMemoryHostPointerPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -352,6 +350,24 @@
 -- ensure that the imported memory range remains valid and accessible for
 -- the lifetime of the imported memory object.
 --
+-- Implementations /may/ support importing host pointers for memory types
+-- which are not host-visible. In this case, after a successful call to
+-- 'Vulkan.Core10.Memory.allocateMemory', the memory range imported from
+-- @pHostPointer@ /must/ not be accessed by the application until the
+-- 'Vulkan.Core10.Handles.DeviceMemory' has been destroyed. Memory contents
+-- for the host memory becomes undefined on import, and is left undefined
+-- after the 'Vulkan.Core10.Handles.DeviceMemory' has been destroyed.
+-- Applications /must/ also not access host memory which is mapped to the
+-- same physical memory as @pHostPointer@, but mapped to a different host
+-- pointer while the 'Vulkan.Core10.Handles.DeviceMemory' handle is valid.
+-- Implementations running on general-purpose operating systems /should/
+-- not support importing host pointers for memory types which are not
+-- host-visible.
+--
+-- Using host pointers to back non-host visible allocations is a
+-- platform-specific use case, and applications should not attempt to do
+-- this unless instructed by the platform.
+--
 -- == Valid Usage
 --
 -- -   #VUID-VkImportMemoryHostPointerInfoEXT-handleType-01747# If
@@ -459,8 +475,11 @@
 --
 -- = Description
 --
--- The value returned by @memoryTypeBits@ /must/ only include bits that
--- identify memory types which are host visible.
+-- The value returned by @memoryTypeBits@ /should/ only include bits that
+-- identify memory types which are host visible. Implementations /may/
+-- include bits that identify memory types which are not host visible.
+-- Behavior for imported pointers of such types is defined by
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#host-memory-import-non-visible-type >.
 --
 -- == Valid Usage (Implicit)
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_external_memory_host - device extension
 --
--- == VK_EXT_external_memory_host
+-- = VK_EXT_external_memory_host
 --
 -- [__Name String__]
 --     @VK_EXT_external_memory_host@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -160,9 +160,7 @@
 --
 -- == See Also
 --
--- 'ImportMemoryHostPointerInfoEXT', 'MemoryHostPointerPropertiesEXT',
--- 'PhysicalDeviceExternalMemoryHostPropertiesEXT',
--- 'getMemoryHostPointerPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_filter_cubic - device extension
 --
--- == VK_EXT_filter_cubic
+-- = VK_EXT_filter_cubic
 --
 -- [__Name String__]
 --     @VK_EXT_filter_cubic@
@@ -18,7 +18,7 @@
 --     3
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     None
@@ -118,8 +118,7 @@
 --
 -- == See Also
 --
--- 'FilterCubicImageViewImageFormatPropertiesEXT',
--- 'PhysicalDeviceImageViewImageFormatInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -245,11 +244,11 @@
 data FilterCubicImageViewImageFormatPropertiesEXT = FilterCubicImageViewImageFormatPropertiesEXT
   { -- | @filterCubic@ tells if image format, image type and image view type
     -- /can/ be used with cubic filtering. This field is set by the
-    -- implementation. User-specified value is ignored.
+    -- implementation. An application-specified value is ignored.
     filterCubic :: Bool
   , -- | @filterCubicMinmax@ tells if image format, image type and image view
     -- type /can/ be used with cubic filtering and minmax filtering. This field
-    -- is set by the implementation. User-specified value is ignored.
+    -- is set by the implementation. An application-specified value is ignored.
     filterCubicMinmax :: Bool
   }
   deriving (Typeable, Eq)
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_filter_cubic - device extension
 --
--- == VK_EXT_filter_cubic
+-- = VK_EXT_filter_cubic
 --
 -- [__Name String__]
 --     @VK_EXT_filter_cubic@
@@ -18,7 +18,7 @@
 --     3
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     None
@@ -118,8 +118,7 @@
 --
 -- == See Also
 --
--- 'FilterCubicImageViewImageFormatPropertiesEXT',
--- 'PhysicalDeviceImageViewImageFormatInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_fragment_density_map - device extension
 --
--- == VK_EXT_fragment_density_map
+-- = VK_EXT_fragment_density_map
 --
 -- [__Name String__]
 --     @VK_EXT_fragment_density_map@
@@ -18,13 +18,19 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_KHR_dynamic_rendering
+--
 --     -   Interacts with VK_KHR_format_feature_flags2
 --
 -- [__SPIR-V Dependencies__]
@@ -44,7 +50,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_fragment_invocation_density.txt GL_EXT_fragment_invocation_density>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_fragment_invocation_density.txt GL_EXT_fragment_invocation_density>
 --
 -- [__Contributors__]
 --
@@ -99,6 +105,17 @@
 --
 --     -   'RenderPassFragmentDensityMapCreateInfoEXT'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':
+--
+--     -   'RenderingFragmentDensityMapAttachmentInfoEXT'
+--
 -- == New Enum Constants
 --
 -- -   'EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME'
@@ -155,6 +172,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending
@@ -162,6 +181,23 @@
 --
 --     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
+--
+--     -   'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT'
+--
 -- == New or Modified Built-In Variables
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fraginvocationcount FragInvocationCountEXT>
@@ -184,9 +220,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceFragmentDensityMapFeaturesEXT',
--- 'PhysicalDeviceFragmentDensityMapPropertiesEXT',
--- 'RenderPassFragmentDensityMapCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -195,9 +229,11 @@
 --
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
-module Vulkan.Extensions.VK_EXT_fragment_density_map  ( PhysicalDeviceFragmentDensityMapFeaturesEXT(..)
+module Vulkan.Extensions.VK_EXT_fragment_density_map  ( pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
+                                                      , PhysicalDeviceFragmentDensityMapFeaturesEXT(..)
                                                       , PhysicalDeviceFragmentDensityMapPropertiesEXT(..)
                                                       , RenderPassFragmentDensityMapCreateInfoEXT(..)
+                                                      , RenderingFragmentDensityMapAttachmentInfoEXT(..)
                                                       , EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION
                                                       , pattern EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION
                                                       , EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME
@@ -226,10 +262,19 @@
 import Vulkan.Core10.Pass (AttachmentReference)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Extent2D)
+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
+import Vulkan.Core10.Handles (ImageView)
 import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT))
+-- No documentation found for TopLevel "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"
+pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
+
+
 -- | VkPhysicalDeviceFragmentDensityMapFeaturesEXT - Structure describing
 -- fragment density map features that can be supported by an implementation
 --
@@ -533,6 +578,116 @@
 
 instance Zero RenderPassFragmentDensityMapCreateInfoEXT where
   zero = RenderPassFragmentDensityMapCreateInfoEXT
+           zero
+
+
+-- | VkRenderingFragmentDensityMapAttachmentInfoEXT - Structure specifying
+-- fragment shading rate attachment information
+--
+-- = Description
+--
+-- This structure can be included in the @pNext@ chain of
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo' to
+-- define a fragment density map. If this structure is not included in the
+-- @pNext@ chain, @imageView@ is treated as
+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06157#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @imageLayout@ /must/ be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'
+--
+-- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it
+--     /must/ have been created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT'
+--
+-- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06159#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it
+--     /must/ not have been created with
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
+--
+-- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-apiVersion-07908#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>
+--     feature is not enabled,
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
+--     is less than Vulkan 1.1, and @imageView@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ have a
+--     @layerCount@ equal to @1@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-sType-sType#
+--     @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT'
+--
+-- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-parameter#
+--     @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'
+--     handle
+--
+-- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageLayout-parameter#
+--     @imageLayout@ /must/ be a valid
+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',
+-- 'Vulkan.Core10.Handles.ImageView',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data RenderingFragmentDensityMapAttachmentInfoEXT = RenderingFragmentDensityMapAttachmentInfoEXT
+  { -- | @imageView@ is the image view that will be used as a fragment density
+    -- map attachment.
+    imageView :: ImageView
+  , -- | @imageLayout@ is the layout that @imageView@ will be in during
+    -- rendering.
+    imageLayout :: ImageLayout
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (RenderingFragmentDensityMapAttachmentInfoEXT)
+#endif
+deriving instance Show RenderingFragmentDensityMapAttachmentInfoEXT
+
+instance ToCStruct RenderingFragmentDensityMapAttachmentInfoEXT where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p RenderingFragmentDensityMapAttachmentInfoEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)
+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr ImageView)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)
+    f
+
+instance FromCStruct RenderingFragmentDensityMapAttachmentInfoEXT where
+  peekCStruct p = do
+    imageView <- peek @ImageView ((p `plusPtr` 16 :: Ptr ImageView))
+    imageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))
+    pure $ RenderingFragmentDensityMapAttachmentInfoEXT
+             imageView imageLayout
+
+instance Storable RenderingFragmentDensityMapAttachmentInfoEXT where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero RenderingFragmentDensityMapAttachmentInfoEXT where
+  zero = RenderingFragmentDensityMapAttachmentInfoEXT
+           zero
            zero
 
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_fragment_density_map - device extension
 --
--- == VK_EXT_fragment_density_map
+-- = VK_EXT_fragment_density_map
 --
 -- [__Name String__]
 --     @VK_EXT_fragment_density_map@
@@ -18,13 +18,19 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_KHR_dynamic_rendering
+--
 --     -   Interacts with VK_KHR_format_feature_flags2
 --
 -- [__SPIR-V Dependencies__]
@@ -44,7 +50,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_fragment_invocation_density.txt GL_EXT_fragment_invocation_density>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_fragment_invocation_density.txt GL_EXT_fragment_invocation_density>
 --
 -- [__Contributors__]
 --
@@ -99,6 +105,17 @@
 --
 --     -   'RenderPassFragmentDensityMapCreateInfoEXT'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':
+--
+--     -   'RenderingFragmentDensityMapAttachmentInfoEXT'
+--
 -- == New Enum Constants
 --
 -- -   'EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME'
@@ -155,6 +172,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending
@@ -162,6 +181,23 @@
 --
 --     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
+--
+--     -   'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT'
+--
 -- == New or Modified Built-In Variables
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fraginvocationcount FragInvocationCountEXT>
@@ -184,9 +220,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceFragmentDensityMapFeaturesEXT',
--- 'PhysicalDeviceFragmentDensityMapPropertiesEXT',
--- 'RenderPassFragmentDensityMapCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -198,6 +232,7 @@
 module Vulkan.Extensions.VK_EXT_fragment_density_map  ( PhysicalDeviceFragmentDensityMapFeaturesEXT
                                                       , PhysicalDeviceFragmentDensityMapPropertiesEXT
                                                       , RenderPassFragmentDensityMapCreateInfoEXT
+                                                      , RenderingFragmentDensityMapAttachmentInfoEXT
                                                       ) where
 
 import Vulkan.CStruct (FromCStruct)
@@ -226,4 +261,12 @@
 instance Show RenderPassFragmentDensityMapCreateInfoEXT
 
 instance FromCStruct RenderPassFragmentDensityMapCreateInfoEXT
+
+
+data RenderingFragmentDensityMapAttachmentInfoEXT
+
+instance ToCStruct RenderingFragmentDensityMapAttachmentInfoEXT
+instance Show RenderingFragmentDensityMapAttachmentInfoEXT
+
+instance FromCStruct RenderingFragmentDensityMapAttachmentInfoEXT
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_fragment_density_map2 - device extension
 --
--- == VK_EXT_fragment_density_map2
+-- = VK_EXT_fragment_density_map2
 --
 -- [__Name String__]
 --     @VK_EXT_fragment_density_map2@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
@@ -92,8 +92,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceFragmentDensityMap2FeaturesEXT',
--- 'PhysicalDeviceFragmentDensityMap2PropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_fragment_density_map2 - device extension
 --
--- == VK_EXT_fragment_density_map2
+-- = VK_EXT_fragment_density_map2
 --
 -- [__Name String__]
 --     @VK_EXT_fragment_density_map2@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
@@ -92,8 +92,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceFragmentDensityMap2FeaturesEXT',
--- 'PhysicalDeviceFragmentDensityMap2PropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_fragment_shader_interlock - device extension
 --
--- == VK_EXT_fragment_shader_interlock
+-- = VK_EXT_fragment_shader_interlock
 --
 -- [__Name String__]
 --     @VK_EXT_fragment_shader_interlock@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -118,7 +118,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceFragmentShaderInterlockFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_fragment_shader_interlock - device extension
 --
--- == VK_EXT_fragment_shader_interlock
+-- = VK_EXT_fragment_shader_interlock
 --
 -- [__Name String__]
 --     @VK_EXT_fragment_shader_interlock@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -118,7 +118,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceFragmentShaderInterlockFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs b/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs
--- a/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs
+++ b/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_frame_boundary - device extension
 --
--- == VK_EXT_frame_boundary
+-- = VK_EXT_frame_boundary
 --
 -- [__Name String__]
 --     @VK_EXT_frame_boundary@
@@ -107,8 +107,7 @@
 --
 -- == See Also
 --
--- 'FrameBoundaryEXT', 'FrameBoundaryFlagBitsEXT', 'FrameBoundaryFlagsEXT',
--- 'PhysicalDeviceFrameBoundaryFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -194,14 +193,11 @@
 -- '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
+-- The frame identifier is used to associate one or more queue submissions
+-- to a frame. It is meant to be unique within a frame lifetime, i.e. it is
+-- possible (though not recommended) to reuse frame identifiers, as long as
+-- any two frames that may have overlapping queue submissions (as in the
+-- example above) use different frame identifiers.
 --
 -- 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
diff --git a/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs-boot b/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_frame_boundary - device extension
 --
--- == VK_EXT_frame_boundary
+-- = VK_EXT_frame_boundary
 --
 -- [__Name String__]
 --     @VK_EXT_frame_boundary@
@@ -107,8 +107,7 @@
 --
 -- == See Also
 --
--- 'FrameBoundaryEXT', 'FrameBoundaryFlagBitsEXT', 'FrameBoundaryFlagsEXT',
--- 'PhysicalDeviceFrameBoundaryFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_full_screen_exclusive - device extension
 --
--- == VK_EXT_full_screen_exclusive
+-- = VK_EXT_full_screen_exclusive
 --
 -- [__Name String__]
 --     @VK_EXT_full_screen_exclusive@
@@ -18,10 +18,14 @@
 --     4
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --     and
@@ -101,12 +105,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_group VK_KHR_device_group>
--- is supported:
---
--- -   'getDeviceGroupSurfacePresentModes2EXT'
---
--- 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#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'getDeviceGroupSurfacePresentModes2EXT'
@@ -250,11 +250,7 @@
 --
 -- == See Also
 --
--- 'FullScreenExclusiveEXT', 'SurfaceCapabilitiesFullScreenExclusiveEXT',
--- 'SurfaceFullScreenExclusiveInfoEXT',
--- 'acquireFullScreenExclusiveModeEXT',
--- 'getPhysicalDeviceSurfacePresentModes2EXT',
--- 'releaseFullScreenExclusiveModeEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -667,11 +663,9 @@
 --
 -- = Description
 --
--- Note
---
 -- Applications will not be able to present to @swapchain@ after this call
 -- until exclusive full-screen access is reacquired. This is usually useful
--- to handle when an application is minimised or otherwise intends to stop
+-- to handle when an application is minimized or otherwise intends to stop
 -- presenting for a time.
 --
 -- == Return Codes
@@ -795,15 +789,11 @@
 --
 -- = Description
 --
--- Note
---
 -- If @hmonitor@ is invalidated (e.g. the monitor is unplugged) during the
 -- lifetime of a swapchain created with this structure, operations on that
 -- swapchain will return
 -- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DATE_KHR'.
 --
--- Note
---
 -- It is the responsibility of the application to change the display
 -- settings of the targeted Win32 display using the appropriate platform
 -- APIs. Such changes /may/ alter the surface capabilities reported for the
@@ -936,25 +926,25 @@
 newtype FullScreenExclusiveEXT = FullScreenExclusiveEXT Int32
   deriving newtype (Eq, Ord, Storable, Zero)
 
--- | 'FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT' indicates the implementation
+-- | 'FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT' specifies that the implementation
 -- /should/ determine the appropriate full-screen method by whatever means
 -- it deems appropriate.
 pattern FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = FullScreenExclusiveEXT 0
 
--- | 'FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT' indicates the implementation /may/
--- use full-screen exclusive mechanisms when available. Such mechanisms
--- /may/ result in better performance and\/or the availability of different
--- presentation capabilities, but /may/ require a more disruptive
--- transition during swapchain initialization, first presentation and\/or
--- destruction.
+-- | 'FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT' specifies that the implementation
+-- /may/ use full-screen exclusive mechanisms when available. Such
+-- mechanisms /may/ result in better performance and\/or the availability
+-- of different presentation capabilities, but /may/ require a more
+-- disruptive transition during swapchain initialization, first
+-- presentation and\/or destruction.
 pattern FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = FullScreenExclusiveEXT 1
 
--- | 'FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT' indicates the implementation
+-- | 'FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT' specifies that the implementation
 -- /should/ avoid using full-screen mechanisms which rely on disruptive
 -- transitions.
 pattern FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = FullScreenExclusiveEXT 2
 
--- | 'FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT' indicates the
+-- | 'FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT' specifies that the
 -- application will manage full-screen exclusive mode by using the
 -- 'acquireFullScreenExclusiveModeEXT' and
 -- 'releaseFullScreenExclusiveModeEXT' commands.
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_full_screen_exclusive - device extension
 --
--- == VK_EXT_full_screen_exclusive
+-- = VK_EXT_full_screen_exclusive
 --
 -- [__Name String__]
 --     @VK_EXT_full_screen_exclusive@
@@ -18,10 +18,14 @@
 --     4
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --     and
@@ -101,12 +105,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_group VK_KHR_device_group>
--- is supported:
---
--- -   'getDeviceGroupSurfacePresentModes2EXT'
---
--- 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#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'getDeviceGroupSurfacePresentModes2EXT'
@@ -250,11 +250,7 @@
 --
 -- == See Also
 --
--- 'FullScreenExclusiveEXT', 'SurfaceCapabilitiesFullScreenExclusiveEXT',
--- 'SurfaceFullScreenExclusiveInfoEXT',
--- 'acquireFullScreenExclusiveModeEXT',
--- 'getPhysicalDeviceSurfacePresentModes2EXT',
--- 'releaseFullScreenExclusiveModeEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_global_priority - device extension
 --
--- == VK_EXT_global_priority
+-- = VK_EXT_global_priority
 --
 -- [__Name String__]
 --     @VK_EXT_global_priority@
@@ -61,7 +61,7 @@
 -- 'Vulkan.Extensions.VK_KHR_global_priority.QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'.
 --
 -- The driver implementation will attempt to skew hardware resource
--- allocation in favour of the higher-priority task. Therefore,
+-- allocation in favor of the higher-priority task. Therefore,
 -- higher-priority work may retain similar latency and throughput
 -- characteristics even if the system is congested with lower priority
 -- work.
@@ -118,7 +118,7 @@
 --
 -- == See Also
 --
--- 'DeviceQueueGlobalPriorityCreateInfoEXT', 'QueueGlobalPriorityEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_global_priority_query - device extension
 --
--- == VK_EXT_global_priority_query
+-- = VK_EXT_global_priority_query
 --
 -- [__Name String__]
 --     @VK_EXT_global_priority_query@
@@ -23,7 +23,11 @@
 -- [__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>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -112,9 +116,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_EXT',
--- 'PhysicalDeviceGlobalPriorityQueryFeaturesEXT',
--- 'QueueFamilyGlobalPriorityPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_graphics_pipeline_library - device extension
 --
--- == VK_EXT_graphics_pipeline_library
+-- = VK_EXT_graphics_pipeline_library
 --
 -- [__Name String__]
 --     @VK_EXT_graphics_pipeline_library@
@@ -21,7 +21,11 @@
 --     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 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library VK_KHR_pipeline_library>
 --
@@ -136,11 +140,7 @@
 --
 -- == See Also
 --
--- 'GraphicsPipelineLibraryCreateInfoEXT',
--- 'GraphicsPipelineLibraryFlagBitsEXT', 'GraphicsPipelineLibraryFlagsEXT',
--- 'PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT',
--- 'PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT',
--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PipelineLayoutCreateFlagBits'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_graphics_pipeline_library - device extension
 --
--- == VK_EXT_graphics_pipeline_library
+-- = VK_EXT_graphics_pipeline_library
 --
 -- [__Name String__]
 --     @VK_EXT_graphics_pipeline_library@
@@ -21,7 +21,11 @@
 --     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 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library VK_KHR_pipeline_library>
 --
@@ -136,11 +140,7 @@
 --
 -- == See Also
 --
--- 'GraphicsPipelineLibraryCreateInfoEXT',
--- 'GraphicsPipelineLibraryFlagBitsEXT', 'GraphicsPipelineLibraryFlagsEXT',
--- 'PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT',
--- 'PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT',
--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PipelineLayoutCreateFlagBits'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_hdr_metadata - device extension
 --
--- == VK_EXT_hdr_metadata
+-- = VK_EXT_hdr_metadata
 --
 -- [__Name String__]
 --     @VK_EXT_hdr_metadata@
@@ -15,10 +15,10 @@
 --     106
 --
 -- [__Revision__]
---     2
+--     3
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
@@ -31,7 +31,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2018-12-19
+--     2024-03-26
 --
 -- [__IP Status__]
 --     No known IP claims.
@@ -40,31 +40,38 @@
 --
 --     -   Courtney Goeltzenleuchter, Google
 --
+--     -   Sebastian Wick, Red Hat Inc.
+--
+--     -   Tobias Hector, AMD
+--
 -- == Description
 --
 -- This extension defines two new structures and a function to assign SMPTE
 -- (the Society of Motion Picture and Television Engineers) 2086 metadata
 -- and CTA (Consumer Technology Association) 861.3 metadata to a swapchain.
--- The metadata includes the color primaries, white point, and luminance
--- range of the reference monitor, which all together define the color
--- volume containing all the possible colors the reference monitor can
--- produce. The reference monitor is the display where creative work is
--- done and creative intent is established. To preserve such creative
--- intent as much as possible and achieve consistent color reproduction on
--- different viewing displays, it is useful for the display pipeline to
--- know the color volume of the original reference monitor where content
--- was created or tuned. This avoids performing unnecessary mapping of
--- colors that are not displayable on the original reference monitor. The
--- metadata also includes the @maxContentLightLevel@ and
--- @maxFrameAverageLightLevel@ as defined by CTA 861.3.
 --
--- 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
--- process. It is up to the implementation to determine how to make use of
--- the metadata.
+-- SMPTE 2086 metadata defines the color volume of the display on which the
+-- content was optimized for viewing and includes the color primaries,
+-- white point, and luminance range. When such content is reproduced on
+-- another display, this metadata can be used by the presentation engine to
+-- improve processing of images. For instance, values in the image can
+-- first be clamped to the color volume described in the metadata, and then
+-- what remains can be remapped to the color volume of the presentation
+-- engine.
 --
+-- CTA 861.3 metadata additionally includes the maximum intended luminance
+-- for the content and the maximum average light level across frames.
+--
+-- This extension does not define exactly how this metadata is used,
+-- however, it simply provides a mechanism to provide it to the
+-- presentation engine. Presentation engines may process the image based on
+-- the metadata before displaying it, resulting in the image being modified
+-- outside of Vulkan. For example, the clamping of colors in the image to
+-- the color volume may change those values in the image itself.
+--
+-- The metadata does not override or otherwise influence the color space
+-- and color encoding.
+--
 -- == New Commands
 --
 -- -   'setHdrMetadataEXT'
@@ -87,14 +94,16 @@
 --
 -- == Issues
 --
--- 1) Do we need a query function?
+-- 1) Do we need a query function for the currently specified metadata?
 --
--- __PROPOSED__: No, Vulkan does not provide queries for state that the
--- application can track on its own.
+-- No, Vulkan does not provide queries for state that the application can
+-- track on its own.
 --
--- 2) Should we specify default if not specified by the application?
+-- 2) Should we specify default metadata if not specified by the
+-- application?
 --
--- __PROPOSED__: No, that leaves the default up to the display.
+-- No, the metadata is optional and the absence of the metadata is
+-- well-defined.
 --
 -- == Version History
 --
@@ -106,9 +115,14 @@
 --
 --     -   Correct implicit validity for VkHdrMetadataEXT structure
 --
+-- -   Revision 3, 2024-03-26 (Tobias Hector & Sebastian Wick)
+--
+--     -   Clarifications and removal of erroneous \"reference monitor\"
+--         term
+--
 -- == See Also
 --
--- 'HdrMetadataEXT', 'XYColorEXT', 'setHdrMetadataEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -130,10 +144,11 @@
 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 Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
@@ -147,6 +162,7 @@
 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(..))
@@ -164,12 +180,24 @@
 import Data.Kind (Type)
 import Control.Monad.Trans.Cont (ContT(..))
 import Data.Vector (Vector)
+import Vulkan.CStruct.Extends (forgetExtensions)
+import Vulkan.CStruct.Extends (pokeSomeCStruct)
 import Vulkan.NamedType ((:::))
+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(pVkSetHdrMetadataEXT))
 import Vulkan.Core10.Handles (Device_T)
+import Vulkan.CStruct.Extends (Extends)
+import Vulkan.CStruct.Extends (Extendss)
+import Vulkan.CStruct.Extends (Extensible(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_hdr_vivid (HdrVividDynamicMetadataHUAWEI)
+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.Extensions.Handles (SwapchainKHR)
 import Vulkan.Extensions.Handles (SwapchainKHR(..))
@@ -180,9 +208,9 @@
   unsafe
 #endif
   "dynamic" mkVkSetHdrMetadataEXT
-  :: FunPtr (Ptr Device_T -> Word32 -> Ptr SwapchainKHR -> Ptr HdrMetadataEXT -> IO ()) -> Ptr Device_T -> Word32 -> Ptr SwapchainKHR -> Ptr HdrMetadataEXT -> IO ()
+  :: FunPtr (Ptr Device_T -> Word32 -> Ptr SwapchainKHR -> Ptr (SomeStruct HdrMetadataEXT) -> IO ()) -> Ptr Device_T -> Word32 -> Ptr SwapchainKHR -> Ptr (SomeStruct HdrMetadataEXT) -> IO ()
 
--- | vkSetHdrMetadataEXT - Set Hdr metadata
+-- | vkSetHdrMetadataEXT - Set HDR metadata
 --
 -- = Description
 --
@@ -226,7 +254,7 @@
                      ("swapchains" ::: Vector SwapchainKHR)
                   -> -- | @pMetadata@ is a pointer to an array of @swapchainCount@
                      -- 'HdrMetadataEXT' structures.
-                     ("metadata" ::: Vector HdrMetadataEXT)
+                     ("metadata" ::: Vector (SomeStruct HdrMetadataEXT))
                   -> io ()
 setHdrMetadataEXT device swapchains metadata = liftIO . evalContT $ do
   let vkSetHdrMetadataEXTPtr = pVkSetHdrMetadataEXT (case device of Device{deviceCmds} -> deviceCmds)
@@ -238,13 +266,13 @@
     throwIO $ IOError Nothing InvalidArgument "" "pMetadata and pSwapchains must have the same length" Nothing Nothing
   pPSwapchains <- ContT $ allocaBytes @SwapchainKHR ((Data.Vector.length (swapchains)) * 8)
   lift $ Data.Vector.imapM_ (\i e -> poke (pPSwapchains `plusPtr` (8 * (i)) :: Ptr SwapchainKHR) (e)) (swapchains)
-  pPMetadata <- ContT $ allocaBytes @HdrMetadataEXT ((Data.Vector.length (metadata)) * 64)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPMetadata `plusPtr` (64 * (i)) :: Ptr HdrMetadataEXT) (e)) (metadata)
+  pPMetadata <- ContT $ allocaBytes @(HdrMetadataEXT _) ((Data.Vector.length (metadata)) * 64)
+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPMetadata `plusPtr` (64 * (i)) :: Ptr (HdrMetadataEXT _))) (e) . ($ ())) (metadata)
   lift $ traceAroundEvent "vkSetHdrMetadataEXT" (vkSetHdrMetadataEXT'
                                                    (deviceHandle (device))
                                                    ((fromIntegral pSwapchainsLength :: Word32))
                                                    (pPSwapchains)
-                                                   (pPMetadata))
+                                                   (forgetExtensions (pPMetadata)))
   pure $ ()
 
 
@@ -254,7 +282,7 @@
 --
 -- Chromaticity coordinates are as specified in CIE 15:2004 “Calculation of
 -- chromaticity coordinates” (Section 7.3) and are limited to between 0 and
--- 1 for real colors for the reference monitor.
+-- 1 for real colors.
 --
 -- = See Also
 --
@@ -304,79 +332,114 @@
            zero
 
 
--- | VkHdrMetadataEXT - Specify Hdr metadata
+-- | VkHdrMetadataEXT - Specify HDR metadata
 --
+-- = Description
+--
+-- If any of the above values are unknown, they /can/ be set to 0.
+--
+-- The meta-data provided here is intended to be used as defined in the
+-- SMPTE 2086, CTA 861.3 and CIE 15:2004 specifications. The validity and
+-- use of this data is outside the scope of Vulkan.
+--
 -- == Valid Usage (Implicit)
 --
--- Note
+-- -   #VUID-VkHdrMetadataEXT-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_HDR_METADATA_EXT'
 --
--- The validity and use of this data is outside the scope of Vulkan.
+-- -   #VUID-VkHdrMetadataEXT-pNext-pNext# @pNext@ /must/ be @NULL@ or a
+--     pointer to a valid instance of
+--     'Vulkan.Extensions.VK_HUAWEI_hdr_vivid.HdrVividDynamicMetadataHUAWEI'
 --
+-- -   #VUID-VkHdrMetadataEXT-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_hdr_metadata VK_EXT_hdr_metadata>,
 -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'XYColorEXT',
 -- 'setHdrMetadataEXT'
-data HdrMetadataEXT = HdrMetadataEXT
-  { -- | @displayPrimaryRed@ is a 'XYColorEXT' structure specifying the reference
-    -- monitor’s red primary in chromaticity coordinates
+data HdrMetadataEXT (es :: [Type]) = HdrMetadataEXT
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @displayPrimaryRed@ is a 'XYColorEXT' structure specifying the red
+    -- primary of the display used to optimize the content
     displayPrimaryRed :: XYColorEXT
-  , -- | @displayPrimaryGreen@ is a 'XYColorEXT' structure specifying the
-    -- reference monitor’s green primary in chromaticity coordinates
+  , -- | @displayPrimaryGreen@ is a 'XYColorEXT' structure specifying the green
+    -- primary of the display used to optimize the content
     displayPrimaryGreen :: XYColorEXT
-  , -- | @displayPrimaryBlue@ is a 'XYColorEXT' structure specifying the
-    -- reference monitor’s blue primary in chromaticity coordinates
+  , -- | @displayPrimaryBlue@ is a 'XYColorEXT' structure specifying the blue
+    -- primary of the display used to optimize the content
     displayPrimaryBlue :: XYColorEXT
-  , -- | @whitePoint@ is a 'XYColorEXT' structure specifying the reference
-    -- monitor’s white-point in chromaticity coordinates
+  , -- | @whitePoint@ is a 'XYColorEXT' structure specifying the white-point of
+    -- the display used to optimize the content
     whitePoint :: XYColorEXT
-  , -- | @maxLuminance@ is the maximum luminance of the reference monitor in nits
+  , -- | @maxLuminance@ is the maximum luminance of the display used to optimize
+    -- the content in nits
     maxLuminance :: Float
-  , -- | @minLuminance@ is the minimum luminance of the reference monitor in nits
+  , -- | @minLuminance@ is the minimum luminance of the display used to optimize
+    -- the content in nits
     minLuminance :: Float
-  , -- | @maxContentLightLevel@ is content’s maximum luminance in nits
+  , -- | @maxContentLightLevel@ is the value in nits of the desired luminance for
+    -- the brightest pixels in the displayed image.
     maxContentLightLevel :: Float
-  , -- | @maxFrameAverageLightLevel@ is the maximum frame average light level in
-    -- nits
+  , -- | @maxFrameAverageLightLevel@ is the value in nits of the average
+    -- luminance of the frame which has the brightest average luminance
+    -- anywhere in the content.
     maxFrameAverageLightLevel :: Float
   }
   deriving (Typeable)
 #if defined(GENERIC_INSTANCES)
-deriving instance Generic (HdrMetadataEXT)
+deriving instance Generic (HdrMetadataEXT (es :: [Type]))
 #endif
-deriving instance Show HdrMetadataEXT
+deriving instance Show (Chain es) => Show (HdrMetadataEXT es)
 
-instance ToCStruct HdrMetadataEXT where
+instance Extensible HdrMetadataEXT where
+  extensibleTypeName = "HdrMetadataEXT"
+  setNext HdrMetadataEXT{..} next' = HdrMetadataEXT{next = next', ..}
+  getNext HdrMetadataEXT{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends HdrMetadataEXT e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @HdrVividDynamicMetadataHUAWEI = Just f
+    | otherwise = Nothing
+
+instance ( Extendss HdrMetadataEXT es
+         , PokeChain es ) => ToCStruct (HdrMetadataEXT es) where
   withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p HdrMetadataEXT{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HDR_METADATA_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr XYColorEXT)) (displayPrimaryRed)
-    poke ((p `plusPtr` 24 :: Ptr XYColorEXT)) (displayPrimaryGreen)
-    poke ((p `plusPtr` 32 :: Ptr XYColorEXT)) (displayPrimaryBlue)
-    poke ((p `plusPtr` 40 :: Ptr XYColorEXT)) (whitePoint)
-    poke ((p `plusPtr` 48 :: Ptr CFloat)) (CFloat (maxLuminance))
-    poke ((p `plusPtr` 52 :: Ptr CFloat)) (CFloat (minLuminance))
-    poke ((p `plusPtr` 56 :: Ptr CFloat)) (CFloat (maxContentLightLevel))
-    poke ((p `plusPtr` 60 :: Ptr CFloat)) (CFloat (maxFrameAverageLightLevel))
-    f
+  pokeCStruct p HdrMetadataEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HDR_METADATA_EXT)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr XYColorEXT)) (displayPrimaryRed)
+    lift $ poke ((p `plusPtr` 24 :: Ptr XYColorEXT)) (displayPrimaryGreen)
+    lift $ poke ((p `plusPtr` 32 :: Ptr XYColorEXT)) (displayPrimaryBlue)
+    lift $ poke ((p `plusPtr` 40 :: Ptr XYColorEXT)) (whitePoint)
+    lift $ poke ((p `plusPtr` 48 :: Ptr CFloat)) (CFloat (maxLuminance))
+    lift $ poke ((p `plusPtr` 52 :: Ptr CFloat)) (CFloat (minLuminance))
+    lift $ poke ((p `plusPtr` 56 :: Ptr CFloat)) (CFloat (maxContentLightLevel))
+    lift $ poke ((p `plusPtr` 60 :: Ptr CFloat)) (CFloat (maxFrameAverageLightLevel))
+    lift $ f
   cStructSize = 64
   cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HDR_METADATA_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr XYColorEXT)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr XYColorEXT)) (zero)
-    poke ((p `plusPtr` 32 :: Ptr XYColorEXT)) (zero)
-    poke ((p `plusPtr` 40 :: Ptr XYColorEXT)) (zero)
-    poke ((p `plusPtr` 48 :: Ptr CFloat)) (CFloat (zero))
-    poke ((p `plusPtr` 52 :: Ptr CFloat)) (CFloat (zero))
-    poke ((p `plusPtr` 56 :: Ptr CFloat)) (CFloat (zero))
-    poke ((p `plusPtr` 60 :: Ptr CFloat)) (CFloat (zero))
-    f
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HDR_METADATA_EXT)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 16 :: Ptr XYColorEXT)) (zero)
+    lift $ poke ((p `plusPtr` 24 :: Ptr XYColorEXT)) (zero)
+    lift $ poke ((p `plusPtr` 32 :: Ptr XYColorEXT)) (zero)
+    lift $ poke ((p `plusPtr` 40 :: Ptr XYColorEXT)) (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 $ poke ((p `plusPtr` 60 :: Ptr CFloat)) (CFloat (zero))
+    lift $ f
 
-instance FromCStruct HdrMetadataEXT where
+instance ( Extendss HdrMetadataEXT es
+         , PeekChain es ) => FromCStruct (HdrMetadataEXT es) where
   peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
     displayPrimaryRed <- peekCStruct @XYColorEXT ((p `plusPtr` 16 :: Ptr XYColorEXT))
     displayPrimaryGreen <- peekCStruct @XYColorEXT ((p `plusPtr` 24 :: Ptr XYColorEXT))
     displayPrimaryBlue <- peekCStruct @XYColorEXT ((p `plusPtr` 32 :: Ptr XYColorEXT))
@@ -386,6 +449,7 @@
     maxContentLightLevel <- peek @CFloat ((p `plusPtr` 56 :: Ptr CFloat))
     maxFrameAverageLightLevel <- peek @CFloat ((p `plusPtr` 60 :: Ptr CFloat))
     pure $ HdrMetadataEXT
+             next
              displayPrimaryRed
              displayPrimaryGreen
              displayPrimaryBlue
@@ -395,14 +459,9 @@
              (coerce @CFloat @Float maxContentLightLevel)
              (coerce @CFloat @Float maxFrameAverageLightLevel)
 
-instance Storable HdrMetadataEXT where
-  sizeOf ~_ = 64
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero HdrMetadataEXT where
+instance es ~ '[] => Zero (HdrMetadataEXT es) where
   zero = HdrMetadataEXT
+           ()
            zero
            zero
            zero
@@ -413,11 +472,11 @@
            zero
 
 
-type EXT_HDR_METADATA_SPEC_VERSION = 2
+type EXT_HDR_METADATA_SPEC_VERSION = 3
 
 -- No documentation found for TopLevel "VK_EXT_HDR_METADATA_SPEC_VERSION"
 pattern EXT_HDR_METADATA_SPEC_VERSION :: forall a . Integral a => a
-pattern EXT_HDR_METADATA_SPEC_VERSION = 2
+pattern EXT_HDR_METADATA_SPEC_VERSION = 3
 
 
 type EXT_HDR_METADATA_EXTENSION_NAME = "VK_EXT_hdr_metadata"
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_hdr_metadata - device extension
 --
--- == VK_EXT_hdr_metadata
+-- = VK_EXT_hdr_metadata
 --
 -- [__Name String__]
 --     @VK_EXT_hdr_metadata@
@@ -15,10 +15,10 @@
 --     106
 --
 -- [__Revision__]
---     2
+--     3
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
@@ -31,7 +31,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2018-12-19
+--     2024-03-26
 --
 -- [__IP Status__]
 --     No known IP claims.
@@ -40,31 +40,38 @@
 --
 --     -   Courtney Goeltzenleuchter, Google
 --
+--     -   Sebastian Wick, Red Hat Inc.
+--
+--     -   Tobias Hector, AMD
+--
 -- == Description
 --
 -- This extension defines two new structures and a function to assign SMPTE
 -- (the Society of Motion Picture and Television Engineers) 2086 metadata
 -- and CTA (Consumer Technology Association) 861.3 metadata to a swapchain.
--- The metadata includes the color primaries, white point, and luminance
--- range of the reference monitor, which all together define the color
--- volume containing all the possible colors the reference monitor can
--- produce. The reference monitor is the display where creative work is
--- done and creative intent is established. To preserve such creative
--- intent as much as possible and achieve consistent color reproduction on
--- different viewing displays, it is useful for the display pipeline to
--- know the color volume of the original reference monitor where content
--- was created or tuned. This avoids performing unnecessary mapping of
--- colors that are not displayable on the original reference monitor. The
--- metadata also includes the @maxContentLightLevel@ and
--- @maxFrameAverageLightLevel@ as defined by CTA 861.3.
 --
--- 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
--- process. It is up to the implementation to determine how to make use of
--- the metadata.
+-- SMPTE 2086 metadata defines the color volume of the display on which the
+-- content was optimized for viewing and includes the color primaries,
+-- white point, and luminance range. When such content is reproduced on
+-- another display, this metadata can be used by the presentation engine to
+-- improve processing of images. For instance, values in the image can
+-- first be clamped to the color volume described in the metadata, and then
+-- what remains can be remapped to the color volume of the presentation
+-- engine.
 --
+-- CTA 861.3 metadata additionally includes the maximum intended luminance
+-- for the content and the maximum average light level across frames.
+--
+-- This extension does not define exactly how this metadata is used,
+-- however, it simply provides a mechanism to provide it to the
+-- presentation engine. Presentation engines may process the image based on
+-- the metadata before displaying it, resulting in the image being modified
+-- outside of Vulkan. For example, the clamping of colors in the image to
+-- the color volume may change those values in the image itself.
+--
+-- The metadata does not override or otherwise influence the color space
+-- and color encoding.
+--
 -- == New Commands
 --
 -- -   'setHdrMetadataEXT'
@@ -87,14 +94,16 @@
 --
 -- == Issues
 --
--- 1) Do we need a query function?
+-- 1) Do we need a query function for the currently specified metadata?
 --
--- __PROPOSED__: No, Vulkan does not provide queries for state that the
--- application can track on its own.
+-- No, Vulkan does not provide queries for state that the application can
+-- track on its own.
 --
--- 2) Should we specify default if not specified by the application?
+-- 2) Should we specify default metadata if not specified by the
+-- application?
 --
--- __PROPOSED__: No, that leaves the default up to the display.
+-- No, the metadata is optional and the absence of the metadata is
+-- well-defined.
 --
 -- == Version History
 --
@@ -106,9 +115,14 @@
 --
 --     -   Correct implicit validity for VkHdrMetadataEXT structure
 --
+-- -   Revision 3, 2024-03-26 (Tobias Hector & Sebastian Wick)
+--
+--     -   Clarifications and removal of erroneous \"reference monitor\"
+--         term
+--
 -- == See Also
 --
--- 'HdrMetadataEXT', 'XYColorEXT', 'setHdrMetadataEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -124,13 +138,19 @@
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
-
-data HdrMetadataEXT
+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 HdrMetadataEXT nominal
+data HdrMetadataEXT (es :: [Type])
 
-instance ToCStruct HdrMetadataEXT
-instance Show HdrMetadataEXT
+instance ( Extendss HdrMetadataEXT es
+         , PokeChain es ) => ToCStruct (HdrMetadataEXT es)
+instance Show (Chain es) => Show (HdrMetadataEXT es)
 
-instance FromCStruct HdrMetadataEXT
+instance ( Extendss HdrMetadataEXT es
+         , PeekChain es ) => FromCStruct (HdrMetadataEXT es)
 
 
 data XYColorEXT
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_headless_surface - instance extension
 --
--- == VK_EXT_headless_surface
+-- = VK_EXT_headless_surface
 --
 -- [__Name String__]
 --     @VK_EXT_headless_surface@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
@@ -50,13 +50,13 @@
 --
 -- Because there is no real presentation target, future extensions can
 -- layer on top of the headless surface to introduce arbitrary or
--- customisable sets of restrictions or features. These could include
+-- customizable sets of restrictions or features. These could include
 -- features like saving to a file or restrictions to emulate a particular
 -- presentation target.
 --
 -- This functionality is expected to be useful for application and driver
 -- development because it allows any platform to expose an arbitrary or
--- customisable set of restrictions and features of a presentation engine.
+-- customizable set of restrictions and features of a presentation engine.
 -- This makes it a useful portable test target for applications targeting a
 -- wide range of presentation engines where the actual target presentation
 -- engines might be scarce, unavailable or otherwise undesirable or
@@ -92,8 +92,7 @@
 --
 -- == See Also
 --
--- 'HeadlessSurfaceCreateFlagsEXT', 'HeadlessSurfaceCreateInfoEXT',
--- 'createHeadlessSurfaceEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -315,7 +314,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_headless_surface VK_EXT_headless_surface>,
--- 'HeadlessSurfaceCreateInfoEXT'
+-- 'Vulkan.Core10.FundamentalTypes.Flags', 'HeadlessSurfaceCreateInfoEXT'
 newtype HeadlessSurfaceCreateFlagsEXT = HeadlessSurfaceCreateFlagsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_headless_surface - instance extension
 --
--- == VK_EXT_headless_surface
+-- = VK_EXT_headless_surface
 --
 -- [__Name String__]
 --     @VK_EXT_headless_surface@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
@@ -50,13 +50,13 @@
 --
 -- Because there is no real presentation target, future extensions can
 -- layer on top of the headless surface to introduce arbitrary or
--- customisable sets of restrictions or features. These could include
+-- customizable sets of restrictions or features. These could include
 -- features like saving to a file or restrictions to emulate a particular
 -- presentation target.
 --
 -- This functionality is expected to be useful for application and driver
 -- development because it allows any platform to expose an arbitrary or
--- customisable set of restrictions and features of a presentation engine.
+-- customizable set of restrictions and features of a presentation engine.
 -- This makes it a useful portable test target for applications targeting a
 -- wide range of presentation engines where the actual target presentation
 -- engines might be scarce, unavailable or otherwise undesirable or
@@ -92,8 +92,7 @@
 --
 -- == See Also
 --
--- 'HeadlessSurfaceCreateFlagsEXT', 'HeadlessSurfaceCreateInfoEXT',
--- 'createHeadlessSurfaceEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs b/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs
--- a/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs
+++ b/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_host_image_copy - device extension
 --
--- == VK_EXT_host_image_copy
+-- = VK_EXT_host_image_copy
 --
 -- [__Name String__]
 --     @VK_EXT_host_image_copy@
@@ -21,11 +21,19 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>
---     and
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -229,16 +237,7 @@
 --
 -- == See Also
 --
--- 'CopyImageToImageInfoEXT', 'CopyImageToMemoryInfoEXT',
--- 'CopyMemoryToImageInfoEXT', 'HostImageCopyDevicePerformanceQueryEXT',
--- 'HostImageCopyFlagBitsEXT', 'HostImageCopyFlagsEXT',
--- 'HostImageLayoutTransitionInfoEXT', 'ImageSubresource2EXT',
--- 'ImageToMemoryCopyEXT', 'MemoryToImageCopyEXT',
--- 'PhysicalDeviceHostImageCopyFeaturesEXT',
--- 'PhysicalDeviceHostImageCopyPropertiesEXT',
--- 'SubresourceHostMemcpySizeEXT', 'SubresourceLayout2EXT',
--- 'copyImageToImageEXT', 'copyImageToMemoryEXT', 'copyMemoryToImageEXT',
--- 'getImageSubresourceLayout2EXT', 'transitionImageLayoutEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -384,22 +383,14 @@
 -- 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
+-- a buffer. The memory of @pCopyMemoryToImageInfo->dstImage@ is accessed
+-- by the host as if
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-coherent coherent>.
 --
--- -   #VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameter#
---     @pCopyMemoryToImageInfo@ /must/ be a valid pointer to a valid
---     'CopyMemoryToImageInfoEXT' structure
+-- Because queue submissions
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-host-writes automatically make host memory visible to the device>,
+-- there would not be a need for a memory barrier before using the results
+-- of this copy operation on the device.
 --
 -- == Return Codes
 --
@@ -424,9 +415,16 @@
 copyMemoryToImageEXT :: forall io
                       . (MonadIO io)
                      => -- | @device@ is the device which owns @pCopyMemoryToImageInfo->dstImage@.
+                        --
+                        -- #VUID-vkCopyMemoryToImageEXT-device-parameter# @device@ /must/ be a
+                        -- valid 'Vulkan.Core10.Handles.Device' handle
                         Device
                      -> -- | @pCopyMemoryToImageInfo@ is a pointer to a 'CopyMemoryToImageInfoEXT'
                         -- structure describing the copy parameters.
+                        --
+                        -- #VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameter#
+                        -- @pCopyMemoryToImageInfo@ /must/ be a valid pointer to a valid
+                        -- 'CopyMemoryToImageInfoEXT' structure
                         CopyMemoryToImageInfoEXT
                      -> io ()
 copyMemoryToImageEXT device copyMemoryToImageInfo = liftIO . evalContT $ do
@@ -455,22 +453,18 @@
 -- 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
+-- buffer. The memory of @pCopyImageToMemoryInfo->srcImage@ is accessed by
+-- the host as if
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-coherent coherent>.
 --
--- -   #VUID-vkCopyImageToMemoryEXT-pCopyImageToMemoryInfo-parameter#
---     @pCopyImageToMemoryInfo@ /must/ be a valid pointer to a valid
---     'CopyImageToMemoryInfoEXT' structure
+-- If the device has written to the image memory, it is not automatically
+-- made available to the host. Before this copy command can be called, a
+-- memory barrier for this image /must/ have been issued on the device with
+-- the second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- including
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' and
+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_READ_BIT'.
 --
 -- == Return Codes
 --
@@ -495,9 +489,16 @@
 copyImageToMemoryEXT :: forall io
                       . (MonadIO io)
                      => -- | @device@ is the device which owns @pCopyImageToMemoryInfo->srcImage@.
+                        --
+                        -- #VUID-vkCopyImageToMemoryEXT-device-parameter# @device@ /must/ be a
+                        -- valid 'Vulkan.Core10.Handles.Device' handle
                         Device
                      -> -- | @pCopyImageToMemoryInfo@ is a pointer to a 'CopyImageToMemoryInfoEXT'
                         -- structure describing the copy parameters.
+                        --
+                        -- #VUID-vkCopyImageToMemoryEXT-pCopyImageToMemoryInfo-parameter#
+                        -- @pCopyImageToMemoryInfo@ /must/ be a valid pointer to a valid
+                        -- 'CopyImageToMemoryInfoEXT' structure
                         CopyImageToMemoryInfoEXT
                      -> io ()
 copyImageToMemoryEXT device copyImageToMemoryInfo = liftIO . evalContT $ do
@@ -525,22 +526,26 @@
 --
 -- 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)
+-- except it is executed on the host. The memory of
+-- @pCopyImageToImageInfo->srcImage@ and @pCopyImageToImageInfo->dstImage@
+-- is accessed by the host as if
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-coherent coherent>.
 --
--- -   #VUID-vkCopyImageToImageEXT-device-parameter# @device@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Device' handle
+-- If the device has written to the memory of
+-- @pCopyImageToImageInfo->srcImage@, it is not automatically made
+-- available to the host. Before this copy command can be called, a memory
+-- barrier for this image /must/ have been issued on the device with the
+-- second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- including
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' and
+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_READ_BIT'.
 --
--- -   #VUID-vkCopyImageToImageEXT-pCopyImageToImageInfo-parameter#
---     @pCopyImageToImageInfo@ /must/ be a valid pointer to a valid
---     'CopyImageToImageInfoEXT' structure
+-- Because queue submissions
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-host-writes automatically make host memory visible to the device>,
+-- there would not be a need for a memory barrier before using the results
+-- of this copy operation in @pCopyMemoryToImageInfo->dstImage@ on the
+-- device.
 --
 -- == Return Codes
 --
@@ -564,10 +569,18 @@
 -- 'CopyImageToImageInfoEXT', 'Vulkan.Core10.Handles.Device'
 copyImageToImageEXT :: forall io
                      . (MonadIO io)
-                    => -- | @device@ is the device which owns @pCopyImageToMemoryInfo->srcImage@.
+                    => -- | @device@ is the device which owns @pCopyImageToImageInfo->srcImage@ and
+                       -- @pCopyImageToImageInfo->dstImage@.
+                       --
+                       -- #VUID-vkCopyImageToImageEXT-device-parameter# @device@ /must/ be a valid
+                       -- 'Vulkan.Core10.Handles.Device' handle
                        Device
                     -> -- | @pCopyImageToImageInfo@ is a pointer to a 'CopyImageToImageInfoEXT'
                        -- structure describing the copy parameters.
+                       --
+                       -- #VUID-vkCopyImageToImageEXT-pCopyImageToImageInfo-parameter#
+                       -- @pCopyImageToImageInfo@ /must/ be a valid pointer to a valid
+                       -- 'CopyImageToImageInfoEXT' structure
                        CopyImageToImageInfoEXT
                     -> io ()
 copyImageToImageEXT device copyImageToImageInfo = liftIO . evalContT $ do
@@ -735,12 +748,12 @@
 -- 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
+-- the application 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@.
 --
@@ -748,12 +761,12 @@
 -- 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
+-- the application 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@.
 --
@@ -1290,34 +1303,142 @@
 --     /must/ be @1@
 --
 -- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07274# For each element of
---     @pRegions@, @imageOffset.x@ /must/ be a multiple of the
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     @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-imageOffset-10051# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     and @imageOffset.x@ does not equal the width of the subresource
+--     specified by @imageSubresource@, @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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     @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-imageOffset-10052# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     and @imageOffset.y@ does not equal the height of the subresource
+--     specified by @imageSubresource@, @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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     the sum of @imageOffset.x@ and @extent.width@ does not equal the
+--     width of the subresource specified by @imageSubresource@,
+--     @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-imageOffset-10053# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the difference of @imageOffset.x@ and @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 width>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-imageOffset-10054# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @imageOffset.x@ and @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-imageOffset-10055# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the sum of @imageOffset.x@ and @extent.height@ does not equal the
+--     width of the subresource specified by @imageSubresource@,
+--     @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 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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     and the sum of @imageOffset.y@ and @extent.height@ does not equal
+--     the height of the subresource specified by @imageSubresource@,
+--     @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-imageOffset-10056# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the sum of @imageOffset.y@ and @extent.width@ does not equal the
+--     height of the subresource specified by @imageSubresource@,
+--     @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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-imageOffset-10057# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @imageOffset.y@ and @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-imageOffset-10058# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the difference of @imageOffset.y@ and @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 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
@@ -1576,34 +1697,142 @@
 --     /must/ be @1@
 --
 -- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07274# For each element of
---     @pRegions@, @imageOffset.x@ /must/ be a multiple of the
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     @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-imageOffset-10051# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     and @imageOffset.x@ does not equal the width of the subresource
+--     specified by @imageSubresource@, @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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     @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-imageOffset-10052# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     and @imageOffset.y@ does not equal the height of the subresource
+--     specified by @imageSubresource@, @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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     the sum of @imageOffset.x@ and @extent.width@ does not equal the
+--     width of the subresource specified by @imageSubresource@,
+--     @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-imageOffset-10053# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the difference of @imageOffset.x@ and @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 width>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-imageOffset-10054# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @imageOffset.x@ and @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-imageOffset-10055# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the sum of @imageOffset.x@ and @extent.height@ does not equal the
+--     width of the subresource specified by @imageSubresource@,
+--     @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 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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     and the sum of @imageOffset.y@ and @extent.height@ does not equal
+--     the height of the subresource specified by @imageSubresource@,
+--     @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-imageOffset-10056# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the sum of @imageOffset.y@ and @extent.width@ does not equal the
+--     height of the subresource specified by @imageSubresource@,
+--     @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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-imageOffset-10057# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @imageOffset.y@ and @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-imageOffset-10058# For each element
+--     of @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the difference of @imageOffset.y@ and @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 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
@@ -1856,34 +2085,142 @@
 --     be @1@
 --
 -- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-07274# For each element of
---     @pRegions@, @srcOffset.x@ /must/ be a multiple of the
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     @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-srcOffset-10051# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     and @srcOffset.x@ does not equal the width of the subresource
+--     specified by @srcSubresource@, @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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     @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-srcOffset-10052# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     and @srcOffset.y@ does not equal the height of the subresource
+--     specified by @srcSubresource@, @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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     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-srcOffset-10053# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the difference of @srcOffset.x@ and @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 width>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcOffset-10054# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @srcOffset.x@ and @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-srcOffset-10055# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the sum of @srcOffset.x@ and @extent.height@ does not equal the
+--     width 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 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@,
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     and 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-srcOffset-10056# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the sum of @srcOffset.y@ and @extent.width@ does not equal the
+--     height 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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcOffset-10057# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @srcOffset.y@ and @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-srcOffset-10058# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the difference of @srcOffset.y@ and @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 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@,
@@ -1998,34 +2335,142 @@
 --     be @1@
 --
 -- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-07274# For each element of
---     @pRegions@, @dstOffset.x@ /must/ be a multiple of the
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     @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-dstOffset-10051# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     and @dstOffset.x@ does not equal the width of the subresource
+--     specified by @dstSubresource@, @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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     @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-dstOffset-10052# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     and @dstOffset.y@ does not equal the height of the subresource
+--     specified by @dstSubresource@, @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
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     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-VkCopyImageToImageInfoEXT-dstOffset-10053# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the difference of @dstOffset.x@ and @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 width>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstOffset-10054# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @dstOffset.x@ and @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-dstOffset-10055# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the sum of @dstOffset.x@ and @extent.height@ does not equal the
+--     width 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 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@,
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+--     and 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-VkCopyImageToImageInfoEXT-dstOffset-10056# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',
+--     the sum of @dstOffset.y@ and @extent.width@ does not equal the
+--     height 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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstOffset-10057# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',
+--     the difference of @dstOffset.y@ and @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-dstOffset-10058# For each element of
+--     @pRegions@, if
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'::@transform@
+--     is equal to
+--     'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',
+--     the difference of @dstOffset.y@ and @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 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@,
@@ -2192,14 +2637,28 @@
 -- 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
+-- completed before the host performs the layout transition. The memory of
+-- @image@ is accessed by the host as if
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-coherent coherent>.
 --
 -- 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.
 --
+-- If the device has written to the image memory, it is not automatically
+-- made available to the host. Before this command can be called, a memory
+-- barrier for this image /must/ have been issued on the device with the
+-- second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- including
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' and
+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_READ_BIT'.
+--
+-- Because queue submissions
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-host-writes automatically make host memory visible to the device>,
+-- there would not be a need for a memory barrier before using the results
+-- of this layout transition on the device.
+--
 -- == Valid Usage
 --
 -- -   #VUID-VkHostImageLayoutTransitionInfoEXT-image-09055# @image@ /must/
@@ -2284,6 +2743,10 @@
 --     or
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'
 --
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-09601#
+--     @subresourceRange.aspectMask@ /must/ be valid for the @format@ the
+--     @image@ was created with
+--
 -- -   #VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09229#
 --     @oldLayout@ /must/ be either
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or the
@@ -2471,21 +2934,15 @@
 -- 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
diff --git a/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs-boot b/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_host_image_copy - device extension
 --
--- == VK_EXT_host_image_copy
+-- = VK_EXT_host_image_copy
 --
 -- [__Name String__]
 --     @VK_EXT_host_image_copy@
@@ -21,11 +21,19 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>
---     and
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -229,16 +237,7 @@
 --
 -- == See Also
 --
--- 'CopyImageToImageInfoEXT', 'CopyImageToMemoryInfoEXT',
--- 'CopyMemoryToImageInfoEXT', 'HostImageCopyDevicePerformanceQueryEXT',
--- 'HostImageCopyFlagBitsEXT', 'HostImageCopyFlagsEXT',
--- 'HostImageLayoutTransitionInfoEXT', 'ImageSubresource2EXT',
--- 'ImageToMemoryCopyEXT', 'MemoryToImageCopyEXT',
--- 'PhysicalDeviceHostImageCopyFeaturesEXT',
--- 'PhysicalDeviceHostImageCopyPropertiesEXT',
--- 'SubresourceHostMemcpySizeEXT', 'SubresourceLayout2EXT',
--- 'copyImageToImageEXT', 'copyImageToMemoryEXT', 'copyMemoryToImageEXT',
--- 'getImageSubresourceLayout2EXT', 'transitionImageLayoutEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_host_query_reset - device extension
 --
--- == VK_EXT_host_query_reset
+-- = VK_EXT_host_query_reset
 --
 -- [__Name String__]
 --     @VK_EXT_host_query_reset@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -58,7 +60,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the EXT suffix omitted. The original type, enum and command names are
+-- the EXT suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -91,7 +93,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceHostQueryResetFeaturesEXT', 'resetQueryPoolEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_image_2d_view_of_3d - device extension
 --
--- == VK_EXT_image_2d_view_of_3d
+-- = VK_EXT_image_2d_view_of_3d
 --
 -- [__Name String__]
 --     @VK_EXT_image_2d_view_of_3d@
@@ -18,12 +18,16 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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
+--          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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -101,7 +105,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceImage2DViewOf3DFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_image_2d_view_of_3d - device extension
 --
--- == VK_EXT_image_2d_view_of_3d
+-- = VK_EXT_image_2d_view_of_3d
 --
 -- [__Name String__]
 --     @VK_EXT_image_2d_view_of_3d@
@@ -18,12 +18,16 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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
+--          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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -101,7 +105,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceImage2DViewOf3DFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_image_compression_control - device extension
 --
--- == VK_EXT_image_compression_control
+-- = VK_EXT_image_compression_control
 --
 -- [__Name String__]
 --     @VK_EXT_image_compression_control@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -136,13 +138,7 @@
 --
 -- == See Also
 --
--- 'ImageCompressionControlEXT', 'ImageCompressionFixedRateFlagBitsEXT',
--- 'ImageCompressionFixedRateFlagsEXT', 'ImageCompressionFlagBitsEXT',
--- 'ImageCompressionFlagsEXT', 'ImageCompressionPropertiesEXT',
--- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageSubresource2EXT',
--- 'PhysicalDeviceImageCompressionControlFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceLayout2EXT',
--- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -280,8 +276,6 @@
 -- -   #VUID-VkImageCompressionControlEXT-sType-sType# @sType@ /must/ be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT'
 --
--- Note
---
 -- Some combinations of compression properties may not be supported. For
 -- example, some implementations may not support different fixed-rate
 -- compression rates per plane of a multi-planar format and will not be
@@ -497,8 +491,6 @@
 -- the @pFixedRateFlags@ array specifies the allowed compression rates for
 -- the image’s @i@th plane.
 --
--- Note
---
 -- If 'IMAGE_COMPRESSION_DISABLED_EXT' is included in
 -- 'ImageCompressionControlEXT'::@flags@, both lossless and fixed-rate
 -- compression will be disabled. This is likely to have a negative impact
@@ -594,8 +586,6 @@
 -- multiple bits are set in 'ImageCompressionControlEXT'::@pFixedRateFlags@
 -- for a plane, implementations /should/ apply the lowest allowed bitrate
 -- that is supported.
---
--- Note
 --
 -- The choice of “bits per component” terminology was chosen so that the
 -- same compression rate describes the same degree of compression applied
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_image_compression_control - device extension
 --
--- == VK_EXT_image_compression_control
+-- = VK_EXT_image_compression_control
 --
 -- [__Name String__]
 --     @VK_EXT_image_compression_control@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -136,13 +138,7 @@
 --
 -- == See Also
 --
--- 'ImageCompressionControlEXT', 'ImageCompressionFixedRateFlagBitsEXT',
--- 'ImageCompressionFixedRateFlagsEXT', 'ImageCompressionFlagBitsEXT',
--- 'ImageCompressionFlagsEXT', 'ImageCompressionPropertiesEXT',
--- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageSubresource2EXT',
--- 'PhysicalDeviceImageCompressionControlFeaturesEXT',
--- 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceLayout2EXT',
--- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_image_compression_control_swapchain - device extension
 --
--- == VK_EXT_image_compression_control_swapchain
+-- = VK_EXT_image_compression_control_swapchain
 --
 -- [__Name String__]
 --     @VK_EXT_image_compression_control_swapchain@
@@ -82,7 +82,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_image_compression_control_swapchain - device extension
 --
--- == VK_EXT_image_compression_control_swapchain
+-- = VK_EXT_image_compression_control_swapchain
 --
 -- [__Name String__]
 --     @VK_EXT_image_compression_control_swapchain@
@@ -82,7 +82,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_image_drm_format_modifier - device extension
 --
--- == VK_EXT_image_drm_format_modifier
+-- = VK_EXT_image_drm_format_modifier
 --
 -- [__Name String__]
 --     @VK_EXT_image_drm_format_modifier@
@@ -18,35 +18,36 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
---              and
---             
+--                  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>
---              and
---             
+--                  and
+--                 
 --     <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>
---     and
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
 --         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_image_format_list VK_KHR_image_format_list>
---          or
---         
---     <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#versions-1.2 Vulkan Version 1.2>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_KHR_format_feature_flags2
 --
 -- [__Contact__]
 --
 --     -   Lina Versace
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_image_drm_format_modifier] @versalinyaa%0A*Here describe the issue or question you have about the VK_EXT_image_drm_format_modifier extension* >
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_image_drm_format_modifier] @linyaa-kiwi%0A*Here describe the issue or question you have about the VK_EXT_image_drm_format_modifier extension* >
 --
 -- == Other Extension Metadata
 --
@@ -320,6 +321,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   'DrmFormatModifierProperties2EXT'
@@ -368,6 +371,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
@@ -548,12 +553,7 @@
 --
 -- == See Also
 --
--- 'DrmFormatModifierPropertiesEXT', 'DrmFormatModifierPropertiesListEXT',
--- 'ImageDrmFormatModifierExplicitCreateInfoEXT',
--- 'ImageDrmFormatModifierListCreateInfoEXT',
--- 'ImageDrmFormatModifierPropertiesEXT',
--- 'PhysicalDeviceImageDrmFormatModifierInfoEXT',
--- 'getImageDrmFormatModifierPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -1299,6 +1299,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier VK_EXT_image_drm_format_modifier>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
 -- 'DrmFormatModifierProperties2EXT',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data DrmFormatModifierPropertiesList2EXT = DrmFormatModifierPropertiesList2EXT
@@ -1356,6 +1357,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier VK_EXT_image_drm_format_modifier>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
 -- 'DrmFormatModifierPropertiesList2EXT',
 -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlags2'
 data DrmFormatModifierProperties2EXT = DrmFormatModifierProperties2EXT
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_image_drm_format_modifier - device extension
 --
--- == VK_EXT_image_drm_format_modifier
+-- = VK_EXT_image_drm_format_modifier
 --
 -- [__Name String__]
 --     @VK_EXT_image_drm_format_modifier@
@@ -18,35 +18,36 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
---              and
---             
+--                  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>
---              and
---             
+--                  and
+--                 
 --     <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>
---     and
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
 --         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_image_format_list VK_KHR_image_format_list>
---          or
---         
---     <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#versions-1.2 Vulkan Version 1.2>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_KHR_format_feature_flags2
 --
 -- [__Contact__]
 --
 --     -   Lina Versace
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_image_drm_format_modifier] @versalinyaa%0A*Here describe the issue or question you have about the VK_EXT_image_drm_format_modifier extension* >
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_image_drm_format_modifier] @linyaa-kiwi%0A*Here describe the issue or question you have about the VK_EXT_image_drm_format_modifier extension* >
 --
 -- == Other Extension Metadata
 --
@@ -320,6 +321,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   'DrmFormatModifierProperties2EXT'
@@ -368,6 +371,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
@@ -548,12 +553,7 @@
 --
 -- == See Also
 --
--- 'DrmFormatModifierPropertiesEXT', 'DrmFormatModifierPropertiesListEXT',
--- 'ImageDrmFormatModifierExplicitCreateInfoEXT',
--- 'ImageDrmFormatModifierListCreateInfoEXT',
--- 'ImageDrmFormatModifierPropertiesEXT',
--- 'PhysicalDeviceImageDrmFormatModifierInfoEXT',
--- 'getImageDrmFormatModifierPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_image_robustness - device extension
 --
--- == VK_EXT_image_robustness
+-- = VK_EXT_image_robustness
 --
 -- [__Name String__]
 --     @VK_EXT_image_robustness@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -86,9 +86,11 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- EXT suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- EXT suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Issues
 --
@@ -113,7 +115,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceImageRobustnessFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_image_sliced_view_of_3d - device extension
 --
--- == VK_EXT_image_sliced_view_of_3d
+-- = VK_EXT_image_sliced_view_of_3d
 --
 -- [__Name String__]
 --     @VK_EXT_image_sliced_view_of_3d@
@@ -21,9 +21,13 @@
 --     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
+--          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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -99,9 +103,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.REMAINING_3D_SLICES_EXT',
--- 'ImageViewSlicedCreateInfoEXT',
--- 'PhysicalDeviceImageSlicedViewOf3DFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -185,7 +187,7 @@
 -- -   #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
+--     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-mip-level-sizing Image Mip Level Sizing>
 --
@@ -201,7 +203,7 @@
 --
 -- -   #VUID-VkImageViewSlicedCreateInfoEXT-None-07871# The
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageSlicedViewOf3D imageSlicedViewOf3D>
---     feature /must/ be enabled on the device
+--     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_image_sliced_view_of_3d - device extension
 --
--- == VK_EXT_image_sliced_view_of_3d
+-- = VK_EXT_image_sliced_view_of_3d
 --
 -- [__Name String__]
 --     @VK_EXT_image_sliced_view_of_3d@
@@ -21,9 +21,13 @@
 --     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
+--          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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -99,9 +103,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.REMAINING_3D_SLICES_EXT',
--- 'ImageViewSlicedCreateInfoEXT',
--- 'PhysicalDeviceImageSlicedViewOf3DFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_image_view_min_lod - device extension
 --
--- == VK_EXT_image_view_min_lod
+-- = VK_EXT_image_view_min_lod
 --
 -- [__Name String__]
 --     @VK_EXT_image_view_min_lod@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -97,8 +99,7 @@
 --
 -- == See Also
 --
--- 'ImageViewMinLodCreateInfoEXT',
--- 'PhysicalDeviceImageViewMinLodFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -143,7 +144,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 an image view is supported by the
 -- implementation
 --
 -- = Members
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_image_view_min_lod - device extension
 --
--- == VK_EXT_image_view_min_lod
+-- = VK_EXT_image_view_min_lod
 --
 -- [__Name String__]
 --     @VK_EXT_image_view_min_lod@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -97,8 +99,7 @@
 --
 -- == See Also
 --
--- 'ImageViewMinLodCreateInfoEXT',
--- 'PhysicalDeviceImageViewMinLodFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_index_type_uint8 - device extension
 --
--- == VK_EXT_index_type_uint8
+-- = VK_EXT_index_type_uint8
 --
 -- [__Name String__]
 --     @VK_EXT_index_type_uint8@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -89,7 +89,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceIndexTypeUint8FeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_inline_uniform_block - device extension
 --
--- == VK_EXT_inline_uniform_block
+-- = VK_EXT_inline_uniform_block
 --
 -- [__Name String__]
 --     @VK_EXT_inline_uniform_block@
@@ -21,10 +21,23 @@
 --     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
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_VERSION_1_2
+--
+--     -   Interacts with VK_EXT_descriptor_indexing
+--
+--     -   Interacts with
+--         VkPhysicalDeviceVulkan12Features::descriptorIndexing
+--
 -- [__Deprecation State__]
 --
 --     -   /Promoted/ to
@@ -105,9 +118,11 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- EXT suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- EXT suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- Vulkan 1.3 adds
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#versions-1.3-new-features additional functionality related to this extension>
@@ -159,8 +174,10 @@
 -- features\/properties about the level of support for update-after-bind
 -- inline uniform blocks.
 --
--- 5) Is the @descriptorBindingVariableDescriptorCount@ feature introduced
--- by @VK_EXT_descriptor_indexing@ supported for inline uniform blocks?
+-- 5) Is the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBindingVariableDescriptorCount descriptorBindingVariableDescriptorCount>
+-- feature introduced by @VK_EXT_descriptor_indexing@ supported for inline
+-- uniform blocks?
 --
 -- __RESOLVED__: Yes, as long as other inline uniform block specific limits
 -- are respected.
@@ -179,10 +196,7 @@
 --
 -- == See Also
 --
--- 'DescriptorPoolInlineUniformBlockCreateInfoEXT',
--- 'PhysicalDeviceInlineUniformBlockFeaturesEXT',
--- 'PhysicalDeviceInlineUniformBlockPropertiesEXT',
--- 'WriteDescriptorSetInlineUniformBlockEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_layer_settings.hs b/src/Vulkan/Extensions/VK_EXT_layer_settings.hs
--- a/src/Vulkan/Extensions/VK_EXT_layer_settings.hs
+++ b/src/Vulkan/Extensions/VK_EXT_layer_settings.hs
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_layer_settings - instance extension
 --
--- == VK_EXT_layer_settings
+-- = VK_EXT_layer_settings
 --
 -- [__Name String__]
 --     @VK_EXT_layer_settings@
@@ -77,9 +77,36 @@
 -- The structure contains an array of 'LayerSettingEXT' structure values
 -- that configure specific features of layers.
 --
+-- The @VK_EXT_layer_settings@ extension subsumes all the functionality
+-- provided in the @VK_EXT_validation_flags@ extension and the
+-- @VK_EXT_validation_features@ extension.
+--
+-- == New Structures
+--
+-- -   'LayerSettingEXT'
+--
+-- -   Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo':
+--
+--     -   'LayerSettingsCreateInfoEXT'
+--
+-- == New Enums
+--
+-- -   'LayerSettingTypeEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_LAYER_SETTINGS_EXTENSION_NAME'
+--
+-- -   'EXT_LAYER_SETTINGS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT'
+--
 -- == Example
 --
--- @VK_EXT_layer_settings@ is implemented by the Vulkan Profiles layer.
+-- One example usage of @VK_EXT_layer_settings@ is as implemented by the
+-- Vulkan Profiles layer.
 --
 -- It allows the profiles layer tests used by the profiles layer C.I. to
 -- programmatically configure the layer for each test without affecting the
@@ -122,34 +149,6 @@
 -- > inst_create_info.pNext = &layer_settings_create_info;
 -- > vkCreateInstance(&inst_create_info, nullptr, &_instances);
 --
--- Note
---
--- The @VK_EXT_layer_settings@ extension subsumes all the functionality
--- provided in the @VK_EXT_validation_flags@ extension and the
--- @VK_EXT_validation_features@ extension.
---
--- == New Structures
---
--- -   'LayerSettingEXT'
---
--- -   Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo':
---
---     -   'LayerSettingsCreateInfoEXT'
---
--- == New Enums
---
--- -   'LayerSettingTypeEXT'
---
--- == New Enum Constants
---
--- -   'EXT_LAYER_SETTINGS_EXTENSION_NAME'
---
--- -   'EXT_LAYER_SETTINGS_SPEC_VERSION'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT'
---
 -- == Issues
 --
 -- -   How should application developers figure out the list of available
@@ -171,7 +170,7 @@
 --
 -- == See Also
 --
--- 'LayerSettingEXT', 'LayerSettingTypeEXT', 'LayerSettingsCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -254,7 +253,7 @@
 -- 'LayerSettingEXT', 'Vulkan.Core10.Enums.StructureType.StructureType'
 data LayerSettingsCreateInfoEXT = LayerSettingsCreateInfoEXT
   { -- | @pSettings@ is a pointer to an array of @settingCount@ 'LayerSettingEXT'
-    -- values specifying the setting to be configured.
+    -- values specifying the settings to be configured.
     settings :: Vector LayerSettingEXT }
   deriving (Typeable)
 #if defined(GENERIC_INSTANCES)
@@ -300,6 +299,12 @@
 -- the same @pSettingName@ is referenced for the same @pLayerName@, the
 -- value of the first reference of the layer setting is used.
 --
+-- == Valid Usage
+--
+-- -   #VUID-VkLayerSettingEXT-valueCount-10070# If @valueCount@ is not
+--     @0@, @pValues@ /must/ be a valid pointer to an array of @valueCount@
+--     values of the type indicated by @type@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkLayerSettingEXT-pLayerName-parameter# @pLayerName@ /must/ be
@@ -311,10 +316,6 @@
 -- -   #VUID-VkLayerSettingEXT-type-parameter# @type@ /must/ be a valid
 --     'LayerSettingTypeEXT' value
 --
--- -   #VUID-VkLayerSettingEXT-pValues-parameter# If @valueCount@ is not
---     @0@, @pValues@ /must/ be a valid pointer to an array of @valueCount@
---     bytes
---
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>,
@@ -324,14 +325,16 @@
     -- layer to configure the setting from.
     layerName :: ByteString
   , -- | @pSettingName@ is a pointer to a null-terminated UTF-8 string naming the
-    -- setting to configure. Unknown @pSettingName@ by the layer are ignored.
+    -- setting to configure. Values of @pSettingName@ that are unknown to the
+    -- layer are ignored.
     settingName :: ByteString
   , -- | @type@ is a 'LayerSettingTypeEXT' value specifying the type of the
     -- @pValues@ values.
     type' :: LayerSettingTypeEXT
-  , -- No documentation found for Nested "VkLayerSettingEXT" "valueCount"
+  , -- | @valueCount@ is the number of values used to configure the layer
+    -- setting.
     valueCount :: Word32
-  , -- | @pValues@ is a pointer to an array of @count@ values of the type
+  , -- | @pValues@ is a pointer to an array of @valueCount@ values of the type
     -- indicated by @type@ to configure the layer setting.
     values :: Ptr ()
   }
diff --git a/src/Vulkan/Extensions/VK_EXT_layer_settings.hs-boot b/src/Vulkan/Extensions/VK_EXT_layer_settings.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_layer_settings.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_layer_settings.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_layer_settings - instance extension
 --
--- == VK_EXT_layer_settings
+-- = VK_EXT_layer_settings
 --
 -- [__Name String__]
 --     @VK_EXT_layer_settings@
@@ -77,9 +77,36 @@
 -- The structure contains an array of 'LayerSettingEXT' structure values
 -- that configure specific features of layers.
 --
+-- The @VK_EXT_layer_settings@ extension subsumes all the functionality
+-- provided in the @VK_EXT_validation_flags@ extension and the
+-- @VK_EXT_validation_features@ extension.
+--
+-- == New Structures
+--
+-- -   'LayerSettingEXT'
+--
+-- -   Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo':
+--
+--     -   'LayerSettingsCreateInfoEXT'
+--
+-- == New Enums
+--
+-- -   'LayerSettingTypeEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_LAYER_SETTINGS_EXTENSION_NAME'
+--
+-- -   'EXT_LAYER_SETTINGS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT'
+--
 -- == Example
 --
--- @VK_EXT_layer_settings@ is implemented by the Vulkan Profiles layer.
+-- One example usage of @VK_EXT_layer_settings@ is as implemented by the
+-- Vulkan Profiles layer.
 --
 -- It allows the profiles layer tests used by the profiles layer C.I. to
 -- programmatically configure the layer for each test without affecting the
@@ -122,34 +149,6 @@
 -- > inst_create_info.pNext = &layer_settings_create_info;
 -- > vkCreateInstance(&inst_create_info, nullptr, &_instances);
 --
--- Note
---
--- The @VK_EXT_layer_settings@ extension subsumes all the functionality
--- provided in the @VK_EXT_validation_flags@ extension and the
--- @VK_EXT_validation_features@ extension.
---
--- == New Structures
---
--- -   'LayerSettingEXT'
---
--- -   Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo':
---
---     -   'LayerSettingsCreateInfoEXT'
---
--- == New Enums
---
--- -   'LayerSettingTypeEXT'
---
--- == New Enum Constants
---
--- -   'EXT_LAYER_SETTINGS_EXTENSION_NAME'
---
--- -   'EXT_LAYER_SETTINGS_SPEC_VERSION'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT'
---
 -- == Issues
 --
 -- -   How should application developers figure out the list of available
@@ -171,7 +170,7 @@
 --
 -- == See Also
 --
--- 'LayerSettingEXT', 'LayerSettingTypeEXT', 'LayerSettingsCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_legacy_dithering - device extension
 --
--- == VK_EXT_legacy_dithering
+-- = VK_EXT_legacy_dithering
 --
 -- [__Name String__]
 --     @VK_EXT_legacy_dithering@
@@ -15,13 +15,15 @@
 --     466
 --
 -- [__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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
@@ -29,6 +31,8 @@
 --
 --     -   Interacts with VK_KHR_dynamic_rendering
 --
+--     -   Interacts with VK_KHR_maintenance5
+--
 -- [__Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>
@@ -44,7 +48,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2022-03-31
+--     2024-02-22
 --
 -- [__Contributors__]
 --
@@ -87,15 +91,16 @@
 --
 -- If
 -- <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 Vulkan Version 1.3>
+-- and
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
 -- is supported:
 --
--- -   Extending 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits':
---
---     -   'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlagBits2KHR':
 --
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Version 1.3>
--- is supported:
+--     -   'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
 --
 -- -   Extending 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits':
 --
@@ -107,6 +112,10 @@
 --
 --     -   Internal revisions
 --
+-- -   Revision 2, 2024-02-22 (Shahbaz Youssefi)
+--
+--     -   Added pipeline create flag to support dynamic rendering
+--
 -- == Issues
 --
 -- 1) In OpenGL, the dither state can change dynamically. Should this
@@ -124,7 +133,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceLegacyDitheringFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -138,6 +147,8 @@
                                                   , pattern EXT_LEGACY_DITHERING_SPEC_VERSION
                                                   , EXT_LEGACY_DITHERING_EXTENSION_NAME
                                                   , pattern EXT_LEGACY_DITHERING_EXTENSION_NAME
+                                                  , PipelineCreateFlagBits2KHR(..)
+                                                  , PipelineCreateFlags2KHR
                                                   ) where
 
 import Foreign.Marshal.Alloc (allocaBytes)
@@ -162,6 +173,8 @@
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT))
+import Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlagBits2KHR(..))
+import Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlags2KHR)
 -- | VkPhysicalDeviceLegacyDitheringFeaturesEXT - Structure describing
 -- support for legacy dithering
 --
@@ -231,11 +244,11 @@
            zero
 
 
-type EXT_LEGACY_DITHERING_SPEC_VERSION = 1
+type EXT_LEGACY_DITHERING_SPEC_VERSION = 2
 
 -- No documentation found for TopLevel "VK_EXT_LEGACY_DITHERING_SPEC_VERSION"
 pattern EXT_LEGACY_DITHERING_SPEC_VERSION :: forall a . Integral a => a
-pattern EXT_LEGACY_DITHERING_SPEC_VERSION = 1
+pattern EXT_LEGACY_DITHERING_SPEC_VERSION = 2
 
 
 type EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering"
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_legacy_dithering - device extension
 --
--- == VK_EXT_legacy_dithering
+-- = VK_EXT_legacy_dithering
 --
 -- [__Name String__]
 --     @VK_EXT_legacy_dithering@
@@ -15,13 +15,15 @@
 --     466
 --
 -- [__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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
@@ -29,6 +31,8 @@
 --
 --     -   Interacts with VK_KHR_dynamic_rendering
 --
+--     -   Interacts with VK_KHR_maintenance5
+--
 -- [__Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>
@@ -44,7 +48,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2022-03-31
+--     2024-02-22
 --
 -- [__Contributors__]
 --
@@ -87,15 +91,16 @@
 --
 -- If
 -- <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 Vulkan Version 1.3>
+-- and
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
 -- is supported:
 --
--- -   Extending 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits':
---
---     -   'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlagBits2KHR':
 --
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Version 1.3>
--- is supported:
+--     -   'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
 --
 -- -   Extending 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits':
 --
@@ -107,6 +112,10 @@
 --
 --     -   Internal revisions
 --
+-- -   Revision 2, 2024-02-22 (Shahbaz Youssefi)
+--
+--     -   Added pipeline create flag to support dynamic rendering
+--
 -- == Issues
 --
 -- 1) In OpenGL, the dither state can change dynamically. Should this
@@ -124,7 +133,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceLegacyDitheringFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_legacy_vertex_attributes.hs b/src/Vulkan/Extensions/VK_EXT_legacy_vertex_attributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_legacy_vertex_attributes.hs
@@ -0,0 +1,304 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_legacy_vertex_attributes - device extension
+--
+-- = VK_EXT_legacy_vertex_attributes
+--
+-- [__Name String__]
+--     @VK_EXT_legacy_vertex_attributes@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     496
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state VK_EXT_vertex_input_dynamic_state>
+--
+-- [__Special Use__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>
+--
+-- [__Contact__]
+--
+--     -   Mike Blumenkrantz
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_legacy_vertex_attributes] @zmike%0A*Here describe the issue or question you have about the VK_EXT_legacy_vertex_attributes extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_legacy_vertex_attributes.adoc VK_EXT_legacy_vertex_attributes>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-02-23
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Mike Blumenkrantz, Valve
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Spencer Fricke, LunarG
+--
+--     -   Alyssa Rosenzweig, Valve
+--
+-- == Description
+--
+-- This extension adds support for legacy features of (non-64-bit) vertex
+-- attributes as found in OpenGL:
+--
+-- -   Vertex attributes loaded from arbitrary buffer alignments
+--
+-- -   Vertex attributes using arbitrary strides
+--
+-- -   Vertex attributes where the component data type of the binding does
+--     not match the component numeric type of the shader input
+--
+-- These features are only usable with dynamic vertex input. Unaligned
+-- loads of vertex attributes may incur performance penalties, indicated
+-- with a property.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceLegacyVertexAttributesFeaturesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceLegacyVertexAttributesPropertiesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME'
+--
+-- -   'EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT'
+--
+-- == Issues
+--
+-- 1.) Should implementations convert float\/integer values?
+--
+-- __RESOLVED__: No. When fetching an integer data type from float values
+-- or float data types from integer values, the resulting shader values are
+-- implementation-dependent.
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-02-16 (Mike Blumenkrantz)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_legacy_vertex_attributes 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_legacy_vertex_attributes  ( PhysicalDeviceLegacyVertexAttributesFeaturesEXT(..)
+                                                          , PhysicalDeviceLegacyVertexAttributesPropertiesEXT(..)
+                                                          , EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION
+                                                          , pattern EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION
+                                                          , EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME
+                                                          , pattern EXT_LEGACY_VERTEX_ATTRIBUTES_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_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT))
+-- | VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT - Structure describing
+-- compatibility features for vertex attributes
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceLegacyVertexAttributesFeaturesEXT' 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. 'PhysicalDeviceLegacyVertexAttributesFeaturesEXT' /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_legacy_vertex_attributes VK_EXT_legacy_vertex_attributes>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceLegacyVertexAttributesFeaturesEXT = PhysicalDeviceLegacyVertexAttributesFeaturesEXT
+  { -- | #features-legacyVertexAttributes# @legacyVertexAttributes@ specifies
+    -- whether compatibility features for vertex attributes are supported when
+    -- using dynamic vertex input state.
+    legacyVertexAttributes :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceLegacyVertexAttributesFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceLegacyVertexAttributesFeaturesEXT
+
+instance ToCStruct PhysicalDeviceLegacyVertexAttributesFeaturesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceLegacyVertexAttributesFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (legacyVertexAttributes))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceLegacyVertexAttributesFeaturesEXT where
+  peekCStruct p = do
+    legacyVertexAttributes <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceLegacyVertexAttributesFeaturesEXT
+             (bool32ToBool legacyVertexAttributes)
+
+instance Storable PhysicalDeviceLegacyVertexAttributesFeaturesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceLegacyVertexAttributesFeaturesEXT where
+  zero = PhysicalDeviceLegacyVertexAttributesFeaturesEXT
+           zero
+
+
+-- | VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT - Structure
+-- describing properties for legacy vertex attributes
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceLegacyVertexAttributesPropertiesEXT' 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. 'PhysicalDeviceLegacyVertexAttributesPropertiesEXT' /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_legacy_vertex_attributes VK_EXT_legacy_vertex_attributes>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceLegacyVertexAttributesPropertiesEXT = PhysicalDeviceLegacyVertexAttributesPropertiesEXT
+  { -- | #limits-nativeUnalignedPerformance# @nativeUnalignedPerformance@
+    -- specifies whether unaligned vertex fetches do not incur significant
+    -- performance penalties as compared to aligned fetches.
+    nativeUnalignedPerformance :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceLegacyVertexAttributesPropertiesEXT)
+#endif
+deriving instance Show PhysicalDeviceLegacyVertexAttributesPropertiesEXT
+
+instance ToCStruct PhysicalDeviceLegacyVertexAttributesPropertiesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceLegacyVertexAttributesPropertiesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (nativeUnalignedPerformance))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceLegacyVertexAttributesPropertiesEXT where
+  peekCStruct p = do
+    nativeUnalignedPerformance <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceLegacyVertexAttributesPropertiesEXT
+             (bool32ToBool nativeUnalignedPerformance)
+
+instance Storable PhysicalDeviceLegacyVertexAttributesPropertiesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceLegacyVertexAttributesPropertiesEXT where
+  zero = PhysicalDeviceLegacyVertexAttributesPropertiesEXT
+           zero
+
+
+type EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION"
+pattern EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION = 1
+
+
+type EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME = "VK_EXT_legacy_vertex_attributes"
+
+-- No documentation found for TopLevel "VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME"
+pattern EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME = "VK_EXT_legacy_vertex_attributes"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_legacy_vertex_attributes.hs-boot b/src/Vulkan/Extensions/VK_EXT_legacy_vertex_attributes.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_legacy_vertex_attributes.hs-boot
@@ -0,0 +1,144 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_legacy_vertex_attributes - device extension
+--
+-- = VK_EXT_legacy_vertex_attributes
+--
+-- [__Name String__]
+--     @VK_EXT_legacy_vertex_attributes@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     496
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state VK_EXT_vertex_input_dynamic_state>
+--
+-- [__Special Use__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>
+--
+-- [__Contact__]
+--
+--     -   Mike Blumenkrantz
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_legacy_vertex_attributes] @zmike%0A*Here describe the issue or question you have about the VK_EXT_legacy_vertex_attributes extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_legacy_vertex_attributes.adoc VK_EXT_legacy_vertex_attributes>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-02-23
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Mike Blumenkrantz, Valve
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Spencer Fricke, LunarG
+--
+--     -   Alyssa Rosenzweig, Valve
+--
+-- == Description
+--
+-- This extension adds support for legacy features of (non-64-bit) vertex
+-- attributes as found in OpenGL:
+--
+-- -   Vertex attributes loaded from arbitrary buffer alignments
+--
+-- -   Vertex attributes using arbitrary strides
+--
+-- -   Vertex attributes where the component data type of the binding does
+--     not match the component numeric type of the shader input
+--
+-- These features are only usable with dynamic vertex input. Unaligned
+-- loads of vertex attributes may incur performance penalties, indicated
+-- with a property.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceLegacyVertexAttributesFeaturesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceLegacyVertexAttributesPropertiesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME'
+--
+-- -   'EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT'
+--
+-- == Issues
+--
+-- 1.) Should implementations convert float\/integer values?
+--
+-- __RESOLVED__: No. When fetching an integer data type from float values
+-- or float data types from integer values, the resulting shader values are
+-- implementation-dependent.
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-02-16 (Mike Blumenkrantz)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_legacy_vertex_attributes 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_legacy_vertex_attributes  ( PhysicalDeviceLegacyVertexAttributesFeaturesEXT
+                                                          , PhysicalDeviceLegacyVertexAttributesPropertiesEXT
+                                                          ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceLegacyVertexAttributesFeaturesEXT
+
+instance ToCStruct PhysicalDeviceLegacyVertexAttributesFeaturesEXT
+instance Show PhysicalDeviceLegacyVertexAttributesFeaturesEXT
+
+instance FromCStruct PhysicalDeviceLegacyVertexAttributesFeaturesEXT
+
+
+data PhysicalDeviceLegacyVertexAttributesPropertiesEXT
+
+instance ToCStruct PhysicalDeviceLegacyVertexAttributesPropertiesEXT
+instance Show PhysicalDeviceLegacyVertexAttributesPropertiesEXT
+
+instance FromCStruct PhysicalDeviceLegacyVertexAttributesPropertiesEXT
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_line_rasterization - device extension
 --
--- == VK_EXT_line_rasterization
+-- = VK_EXT_line_rasterization
 --
 -- [__Name String__]
 --     @VK_EXT_line_rasterization@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -134,10 +134,7 @@
 --
 -- == See Also
 --
--- 'LineRasterizationModeEXT',
--- 'PhysicalDeviceLineRasterizationFeaturesEXT',
--- 'PhysicalDeviceLineRasterizationPropertiesEXT',
--- 'PipelineRasterizationLineStateCreateInfoEXT', 'cmdSetLineStippleEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_line_rasterization - device extension
 --
--- == VK_EXT_line_rasterization
+-- = VK_EXT_line_rasterization
 --
 -- [__Name String__]
 --     @VK_EXT_line_rasterization@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -134,10 +134,7 @@
 --
 -- == See Also
 --
--- 'LineRasterizationModeEXT',
--- 'PhysicalDeviceLineRasterizationFeaturesEXT',
--- 'PhysicalDeviceLineRasterizationPropertiesEXT',
--- 'PipelineRasterizationLineStateCreateInfoEXT', 'cmdSetLineStippleEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_load_store_op_none - device extension
 --
--- == VK_EXT_load_store_op_none
+-- = VK_EXT_load_store_op_none
 --
 -- [__Name String__]
 --     @VK_EXT_load_store_op_none@
@@ -81,6 +81,11 @@
 -- -   Extending 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp':
 --
 --     -   'ATTACHMENT_STORE_OP_NONE_EXT'
+--
+-- While 'Vulkan.Core10.Enums.AttachmentStoreOp.ATTACHMENT_STORE_OP_NONE'
+-- is part of Vulkan 1.3, this extension was not promoted to core either in
+-- whole or in part. This functionality was promoted from
+-- @VK_KHR_dynamic_rendering@.
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_map_memory_placed.hs b/src/Vulkan/Extensions/VK_EXT_map_memory_placed.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_map_memory_placed.hs
@@ -0,0 +1,403 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_map_memory_placed - device extension
+--
+-- = VK_EXT_map_memory_placed
+--
+-- [__Name String__]
+--     @VK_EXT_map_memory_placed@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     273
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_map_memory2 VK_KHR_map_memory2>
+--
+-- [__Contact__]
+--
+--     -   Faith Ekstrand
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_map_memory_placed] @gfxstrand%0A*Here describe the issue or question you have about the VK_EXT_map_memory_placed extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_map_memory_placed.adoc VK_EXT_map_memory_placed>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-03-21
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   Depends on apitext:VK_KHR_map_memory2
+--
+--     -   Interacts with apitext:VK_EXT_external_memory_host
+--
+-- [__Contributors__]
+--
+--     -   Faith Ekstrand, Collabora
+--
+--     -   Tobias Hector, AMD
+--
+--     -   James Jones, NVIDIA
+--
+--     -   Georg Lehmann, Valve
+--
+--     -   Derek Lesho, Codeweavers
+--
+-- == Description
+--
+-- This extension allows an application to request that
+-- 'Vulkan.Extensions.VK_KHR_map_memory2.mapMemory2KHR' attempt to place
+-- the memory map at a particular virtual address.
+--
+-- == New Structures
+--
+-- -   Extending 'Vulkan.Extensions.VK_KHR_map_memory2.MemoryMapInfoKHR':
+--
+--     -   'MemoryMapPlacedInfoEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceMapMemoryPlacedFeaturesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceMapMemoryPlacedPropertiesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_MAP_MEMORY_PLACED_EXTENSION_NAME'
+--
+-- -   'EXT_MAP_MEMORY_PLACED_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.MemoryMapFlagBits.MemoryMapFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_map_memory2.MemoryUnmapFlagBitsKHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_map_memory2.MEMORY_UNMAP_RESERVE_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT'
+--
+-- == Version History
+--
+-- -   Revision 0, 2024-01-14 (Faith Ekstrand)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_map_memory_placed 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_map_memory_placed  ( PhysicalDeviceMapMemoryPlacedFeaturesEXT(..)
+                                                   , PhysicalDeviceMapMemoryPlacedPropertiesEXT(..)
+                                                   , MemoryMapPlacedInfoEXT(..)
+                                                   , EXT_MAP_MEMORY_PLACED_SPEC_VERSION
+                                                   , pattern EXT_MAP_MEMORY_PLACED_SPEC_VERSION
+                                                   , EXT_MAP_MEMORY_PLACED_EXTENSION_NAME
+                                                   , pattern EXT_MAP_MEMORY_PLACED_EXTENSION_NAME
+                                                   , MemoryUnmapFlagBitsKHR(..)
+                                                   , MemoryUnmapFlagsKHR
+                                                   ) 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.FundamentalTypes (DeviceSize)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT))
+import Vulkan.Extensions.VK_KHR_map_memory2 (MemoryUnmapFlagBitsKHR(..))
+import Vulkan.Extensions.VK_KHR_map_memory2 (MemoryUnmapFlagsKHR)
+-- | VkPhysicalDeviceMapMemoryPlacedFeaturesEXT - Structure describing placed
+-- memory map features that can be supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceMapMemoryPlacedFeaturesEXT' 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. 'PhysicalDeviceMapMemoryPlacedFeaturesEXT' /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_map_memory_placed VK_EXT_map_memory_placed>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceMapMemoryPlacedFeaturesEXT = PhysicalDeviceMapMemoryPlacedFeaturesEXT
+  { -- | #features-memoryMapPlaced# @memoryMapPlaced@ indicates that the
+    -- implementation supports placing memory maps at application-specified
+    -- virtual addresses.
+    memoryMapPlaced :: Bool
+  , -- | #features-memoryMapRangePlaced# @memoryMapRangePlaced@ indicates that
+    -- the implementation supports placing memory maps of a subrange of a
+    -- memory object at application-specified virtual addresses.
+    memoryMapRangePlaced :: Bool
+  , -- | #features-memoryUnmapReserve# @memoryUnmapReserve@ indicates that the
+    -- implementation supports leaving the memory range reserved when unmapping
+    -- a memory object.
+    memoryUnmapReserve :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceMapMemoryPlacedFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceMapMemoryPlacedFeaturesEXT
+
+instance ToCStruct PhysicalDeviceMapMemoryPlacedFeaturesEXT where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceMapMemoryPlacedFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (memoryMapPlaced))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (memoryMapRangePlaced))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (memoryUnmapReserve))
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_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 PhysicalDeviceMapMemoryPlacedFeaturesEXT where
+  peekCStruct p = do
+    memoryMapPlaced <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    memoryMapRangePlaced <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    memoryUnmapReserve <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    pure $ PhysicalDeviceMapMemoryPlacedFeaturesEXT
+             (bool32ToBool memoryMapPlaced)
+             (bool32ToBool memoryMapRangePlaced)
+             (bool32ToBool memoryUnmapReserve)
+
+instance Storable PhysicalDeviceMapMemoryPlacedFeaturesEXT where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceMapMemoryPlacedFeaturesEXT where
+  zero = PhysicalDeviceMapMemoryPlacedFeaturesEXT
+           zero
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceMapMemoryPlacedPropertiesEXT - Structure describing the
+-- alignment requirements of placed memory maps for a physical device
+--
+-- = Members
+--
+-- The members of the 'PhysicalDeviceMapMemoryPlacedPropertiesEXT'
+-- structure describe the following:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceMapMemoryPlacedPropertiesEXT' 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_map_memory_placed VK_EXT_map_memory_placed>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceMapMemoryPlacedPropertiesEXT = PhysicalDeviceMapMemoryPlacedPropertiesEXT
+  { -- | #limits-minPlacedMemoryMapAlignment# @minPlacedMemoryMapAlignment@ is
+    -- the minimum alignment required for memory object offsets and virtual
+    -- address ranges when using placed memory mapping.
+    minPlacedMemoryMapAlignment :: DeviceSize }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceMapMemoryPlacedPropertiesEXT)
+#endif
+deriving instance Show PhysicalDeviceMapMemoryPlacedPropertiesEXT
+
+instance ToCStruct PhysicalDeviceMapMemoryPlacedPropertiesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceMapMemoryPlacedPropertiesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (minPlacedMemoryMapAlignment)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)
+    f
+
+instance FromCStruct PhysicalDeviceMapMemoryPlacedPropertiesEXT where
+  peekCStruct p = do
+    minPlacedMemoryMapAlignment <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))
+    pure $ PhysicalDeviceMapMemoryPlacedPropertiesEXT
+             minPlacedMemoryMapAlignment
+
+instance Storable PhysicalDeviceMapMemoryPlacedPropertiesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceMapMemoryPlacedPropertiesEXT where
+  zero = PhysicalDeviceMapMemoryPlacedPropertiesEXT
+           zero
+
+
+-- | VkMemoryMapPlacedInfoEXT - Structure containing memory map placement
+-- parameters
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkMemoryMapPlacedInfoEXT-flags-09576# If
+--     'Vulkan.Extensions.VK_KHR_map_memory2.MemoryMapInfoKHR'::@flags@
+--     contains
+--     'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT',
+--     @pPlacedAddress@ /must/ not be @NULL@
+--
+-- -   #VUID-VkMemoryMapPlacedInfoEXT-pPlacedAddress-09577#
+--     @pPlacedAddress@ /must/ be aligned to an integer multiple of
+--     'PhysicalDeviceMapMemoryPlacedPropertiesEXT'::@minPlacedMemoryMapAlignment@
+--
+-- -   #VUID-VkMemoryMapPlacedInfoEXT-pPlacedAddress-09578# The address
+--     range specified by @pPlacedAddress@ and
+--     'Vulkan.Extensions.VK_KHR_map_memory2.MemoryMapInfoKHR'::@size@
+--     /must/ not overlap any existing Vulkan memory object mapping
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkMemoryMapPlacedInfoEXT-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_map_memory_placed VK_EXT_map_memory_placed>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data MemoryMapPlacedInfoEXT = MemoryMapPlacedInfoEXT
+  { -- | @pPlacedAddress@ is the virtual address at which to place the address.
+    -- If 'Vulkan.Extensions.VK_KHR_map_memory2.MemoryMapInfoKHR'::@flags@ does
+    -- not contain
+    -- 'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT', this
+    -- value is ignored.
+    placedAddress :: Ptr () }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (MemoryMapPlacedInfoEXT)
+#endif
+deriving instance Show MemoryMapPlacedInfoEXT
+
+instance ToCStruct MemoryMapPlacedInfoEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p MemoryMapPlacedInfoEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr (Ptr ()))) (placedAddress)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr (Ptr ()))) (zero)
+    f
+
+instance FromCStruct MemoryMapPlacedInfoEXT where
+  peekCStruct p = do
+    pPlacedAddress <- peek @(Ptr ()) ((p `plusPtr` 16 :: Ptr (Ptr ())))
+    pure $ MemoryMapPlacedInfoEXT
+             pPlacedAddress
+
+instance Storable MemoryMapPlacedInfoEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero MemoryMapPlacedInfoEXT where
+  zero = MemoryMapPlacedInfoEXT
+           zero
+
+
+type EXT_MAP_MEMORY_PLACED_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION"
+pattern EXT_MAP_MEMORY_PLACED_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_MAP_MEMORY_PLACED_SPEC_VERSION = 1
+
+
+type EXT_MAP_MEMORY_PLACED_EXTENSION_NAME = "VK_EXT_map_memory_placed"
+
+-- No documentation found for TopLevel "VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME"
+pattern EXT_MAP_MEMORY_PLACED_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_MAP_MEMORY_PLACED_EXTENSION_NAME = "VK_EXT_map_memory_placed"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_map_memory_placed.hs-boot b/src/Vulkan/Extensions/VK_EXT_map_memory_placed.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_map_memory_placed.hs-boot
@@ -0,0 +1,154 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_map_memory_placed - device extension
+--
+-- = VK_EXT_map_memory_placed
+--
+-- [__Name String__]
+--     @VK_EXT_map_memory_placed@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     273
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_map_memory2 VK_KHR_map_memory2>
+--
+-- [__Contact__]
+--
+--     -   Faith Ekstrand
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_map_memory_placed] @gfxstrand%0A*Here describe the issue or question you have about the VK_EXT_map_memory_placed extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_map_memory_placed.adoc VK_EXT_map_memory_placed>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-03-21
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   Depends on apitext:VK_KHR_map_memory2
+--
+--     -   Interacts with apitext:VK_EXT_external_memory_host
+--
+-- [__Contributors__]
+--
+--     -   Faith Ekstrand, Collabora
+--
+--     -   Tobias Hector, AMD
+--
+--     -   James Jones, NVIDIA
+--
+--     -   Georg Lehmann, Valve
+--
+--     -   Derek Lesho, Codeweavers
+--
+-- == Description
+--
+-- This extension allows an application to request that
+-- 'Vulkan.Extensions.VK_KHR_map_memory2.mapMemory2KHR' attempt to place
+-- the memory map at a particular virtual address.
+--
+-- == New Structures
+--
+-- -   Extending 'Vulkan.Extensions.VK_KHR_map_memory2.MemoryMapInfoKHR':
+--
+--     -   'MemoryMapPlacedInfoEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceMapMemoryPlacedFeaturesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceMapMemoryPlacedPropertiesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_MAP_MEMORY_PLACED_EXTENSION_NAME'
+--
+-- -   'EXT_MAP_MEMORY_PLACED_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.MemoryMapFlagBits.MemoryMapFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_map_memory2.MemoryUnmapFlagBitsKHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_map_memory2.MEMORY_UNMAP_RESERVE_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT'
+--
+-- == Version History
+--
+-- -   Revision 0, 2024-01-14 (Faith Ekstrand)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_map_memory_placed 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_map_memory_placed  ( MemoryMapPlacedInfoEXT
+                                                   , PhysicalDeviceMapMemoryPlacedFeaturesEXT
+                                                   , PhysicalDeviceMapMemoryPlacedPropertiesEXT
+                                                   ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data MemoryMapPlacedInfoEXT
+
+instance ToCStruct MemoryMapPlacedInfoEXT
+instance Show MemoryMapPlacedInfoEXT
+
+instance FromCStruct MemoryMapPlacedInfoEXT
+
+
+data PhysicalDeviceMapMemoryPlacedFeaturesEXT
+
+instance ToCStruct PhysicalDeviceMapMemoryPlacedFeaturesEXT
+instance Show PhysicalDeviceMapMemoryPlacedFeaturesEXT
+
+instance FromCStruct PhysicalDeviceMapMemoryPlacedFeaturesEXT
+
+
+data PhysicalDeviceMapMemoryPlacedPropertiesEXT
+
+instance ToCStruct PhysicalDeviceMapMemoryPlacedPropertiesEXT
+instance Show PhysicalDeviceMapMemoryPlacedPropertiesEXT
+
+instance FromCStruct PhysicalDeviceMapMemoryPlacedPropertiesEXT
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_memory_budget - device extension
 --
--- == VK_EXT_memory_budget
+-- = VK_EXT_memory_budget
 --
 -- [__Name String__]
 --     @VK_EXT_memory_budget@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -93,7 +93,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceMemoryBudgetPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_memory_budget - device extension
 --
--- == VK_EXT_memory_budget
+-- = VK_EXT_memory_budget
 --
 -- [__Name String__]
 --     @VK_EXT_memory_budget@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -93,7 +93,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceMemoryBudgetPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_memory_priority - device extension
 --
--- == VK_EXT_memory_priority
+-- = VK_EXT_memory_priority
 --
 -- [__Name String__]
 --     @VK_EXT_memory_priority@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -81,8 +83,7 @@
 --
 -- == See Also
 --
--- 'MemoryPriorityAllocateInfoEXT',
--- 'PhysicalDeviceMemoryPriorityFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_memory_priority - device extension
 --
--- == VK_EXT_memory_priority
+-- = VK_EXT_memory_priority
 --
 -- [__Name String__]
 --     @VK_EXT_memory_priority@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -81,8 +83,7 @@
 --
 -- == See Also
 --
--- 'MemoryPriorityAllocateInfoEXT',
--- 'PhysicalDeviceMemoryPriorityFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,11586 +3,11375 @@
 --
 -- VK_EXT_mesh_shader - device extension
 --
--- == VK_EXT_mesh_shader
---
--- [__Name String__]
---     @VK_EXT_mesh_shader@
---
--- [__Extension Type__]
---     Device extension
---
--- [__Registered Extension Number__]
---     329
---
--- [__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>
---
--- [__API Interactions__]
---
---     -   Interacts with VK_NV_device_generated_commands
---
--- [__SPIR-V Dependencies__]
---
---     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_mesh_shader.html SPV_EXT_mesh_shader>
---
--- [__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 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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent 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.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_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',
---     '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_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',
---     '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_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',
---     '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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 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'
---     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-rasterizerDiscardEnable-09416# If the
---     @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# 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.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-rasterizerDiscardEnable-09419# 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, 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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
---     a shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-None-09548# If the current render pass
---     was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-09549# If the current render pass
---     was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent 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.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_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',
---     '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_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',
---     '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_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',
---     '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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 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'
---     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-rasterizerDiscardEnable-09416#
---     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417#
---     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, 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-rasterizerDiscardEnable-09418#
---     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.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-rasterizerDiscardEnable-09419#
---     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, 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
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420#
---     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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-None-09548# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09549# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent 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.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_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',
---     '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_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',
---     '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_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',
---     '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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
---     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', 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 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', 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 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
---     the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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 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'
---     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-rasterizerDiscardEnable-09416#
---     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417#
---     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, 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-rasterizerDiscardEnable-09418#
---     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.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-rasterizerDiscardEnable-09419#
---     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, 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 a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420#
---     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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-None-09548# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09549# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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#
+-- = VK_EXT_mesh_shader
+--
+-- [__Name String__]
+--     @VK_EXT_mesh_shader@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     329
+--
+-- [__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>
+--
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_EXT_device_generated_commands
+--
+--     -   Interacts with VK_KHR_fragment_shading_rate
+--
+--     -   Interacts with VK_NV_device_generated_commands
+--
+--     -   Interacts with
+--         VkPhysicalDeviceMeshShaderFeaturesEXT::primitiveFragmentShadingRateMeshShader
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_mesh_shader.html SPV_EXT_mesh_shader>
+--
+-- [__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 provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/main/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_EXT_device_generated_commands VK_EXT_device_generated_commands>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectCommandsTokenTypeEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT'
+--
+--     -   'Vulkan.Extensions.VK_EXT_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_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
+--
+-- No cross-references are available
+--
+-- == 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(..)
+                                             , IndirectCommandsTokenTypeEXT(..)
+                                             ) 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_EXT_device_generated_commands (IndirectCommandsTokenTypeEXT(..))
+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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of resources
+--     that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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
+--     specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with type
+--     equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595# Input
+--     attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-pDepthInputAttachmentIndex-09596# Input
+--     attachment views accessed in a dynamic render pass via a shader
+--     object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-InputAttachmentIndex-09597# If an input
+--     attachment view accessed in a dynamic render pass via a shader
+--     object has an @InputAttachmentIndex@, the @InputAttachmentIndex@
+--     /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08618# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07834# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07836# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07837# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07838# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07839# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07840# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07841# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07843# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07844# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07845# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07847# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07848# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-viewportCount-03417# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-scissorCount-03418# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-viewportCount-03419# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-04876# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-04877# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-logicOp-04878# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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 bound
+--     pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07621# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07622# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07623# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09416# If the
+--     @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# If a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419# 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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-coverageModulationTableEnable-07488# If
+--     a shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-None-09548# If the current render pass
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09549# If the current render pass
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09642# If the current render pass
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09643# If the bound graphics
+--     pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-stage-06480# The bound graphics pipeline
+--     /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-unnormalizedCoordinates-09635#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-unnormalizedCoordinates-09636#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of
+--     resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with
+--     type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595#
+--     Input attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthInputAttachmentIndex-09596#
+--     Input attachment views accessed in a dynamic render pass via a
+--     shader object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-InputAttachmentIndex-09597# If
+--     an input attachment view accessed in a dynamic render pass via a
+--     shader object has an @InputAttachmentIndex@, the
+--     @InputAttachmentIndex@ /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08618# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07834# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07836# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07837# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07838# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07839# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07840# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07841# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07843# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07844# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07845# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07847# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07848# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03417# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-scissorCount-03418# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03419# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-04876# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-04877# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-logicOp-04878# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07621# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07622# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07623# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09416#
+--     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417#
+--     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, 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-rasterizerDiscardEnable-09418#
+--     If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419#
+--     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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-coverageModulationTableEnable-07488#
+--     If a shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420#
+--     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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-None-09548# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09549# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09642# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09643# If the bound
+--     graphics pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-stage-06480# The bound graphics
+--     pipeline /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-unnormalizedCoordinates-09635#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-unnormalizedCoordinates-09636#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array
+--     of resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor
+--     with type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595#
+--     Input attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthInputAttachmentIndex-09596#
+--     Input attachment views accessed in a dynamic render pass via a
+--     shader object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-InputAttachmentIndex-09597#
+--     If an input attachment view accessed in a dynamic render pass via a
+--     shader object has an @InputAttachmentIndex@, the
+--     @InputAttachmentIndex@ /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08618# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07834# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07836# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07837# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07838# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07839# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07840# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07841# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07843# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07844# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07845# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07847# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07848# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03417# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-scissorCount-03418# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03419# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which 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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04876# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04877# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-logicOp-04878# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07621# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07622# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07623# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09416#
+--     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417#
+--     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, 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-rasterizerDiscardEnable-09418#
+--     If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419#
+--     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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageModulationTableEnable-07488#
+--     If a shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420#
+--     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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-None-09548# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09549# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09642# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09643# If the bound
+--     graphics pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stage-06480# The bound
+--     graphics pipeline /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCount drawIndirectCount>
+--     feature 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-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-multiviewMeshShader# @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-primitiveFragmentShadingRateMeshShader#
     -- @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>
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_mesh_shader - device extension
 --
--- == VK_EXT_mesh_shader
+-- = VK_EXT_mesh_shader
 --
 -- [__Name String__]
 --     @VK_EXT_mesh_shader@
@@ -25,8 +25,15 @@
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_EXT_device_generated_commands
+--
+--     -   Interacts with VK_KHR_fragment_shading_rate
+--
 --     -   Interacts with VK_NV_device_generated_commands
 --
+--     -   Interacts with
+--         VkPhysicalDeviceMeshShaderFeaturesEXT::primitiveFragmentShadingRateMeshShader
+--
 -- [__SPIR-V Dependencies__]
 --
 --     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_mesh_shader.html SPV_EXT_mesh_shader>
@@ -47,7 +54,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_mesh_shader.txt GLSL_EXT_mesh_shader>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_mesh_shader.txt GLSL_EXT_mesh_shader>
 --
 --     -   Interacts with Vulkan 1.1
 --
@@ -177,6 +184,17 @@
 --     -   '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_EXT_device_generated_commands VK_EXT_device_generated_commands>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectCommandsTokenTypeEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT'
+--
+--     -   'Vulkan.Extensions.VK_EXT_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_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:
 --
@@ -244,10 +262,7 @@
 --
 -- == See Also
 --
--- 'DrawMeshTasksIndirectCommandEXT',
--- 'PhysicalDeviceMeshShaderFeaturesEXT',
--- 'PhysicalDeviceMeshShaderPropertiesEXT', 'cmdDrawMeshTasksEXT',
--- 'cmdDrawMeshTasksIndirectCountEXT', 'cmdDrawMeshTasksIndirectEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_metal_objects - device extension
 --
--- == VK_EXT_metal_objects
+-- = VK_EXT_metal_objects
 --
 -- [__Name String__]
 --     @VK_EXT_metal_objects@
@@ -15,10 +15,10 @@
 --     312
 --
 -- [__Revision__]
---     1
+--     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     None
@@ -34,7 +34,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2022-05-28
+--     2024-04-04
 --
 -- [__IP Status__]
 --     No known IP claims.
@@ -183,17 +183,15 @@
 --         mask fields to individual bit fields to simplify Valid Usage
 --         rules.
 --
+-- -   Revision 2, 2024-04-04 (Bill Hollings)
+--
+--     -   Add an @__unsafe_unretained@ ownership qualifier to all Metal
+--         object declarations, to support Automatic Reference Counting
+--         (ARC) on Apple devices.
+--
 -- == See Also
 --
--- 'IOSurfaceRef', 'MTLBuffer_id', 'MTLCommandQueue_id', 'MTLDevice_id',
--- 'MTLSharedEvent_id', 'MTLTexture_id', 'ExportMetalBufferInfoEXT',
--- 'ExportMetalCommandQueueInfoEXT', 'ExportMetalDeviceInfoEXT',
--- 'ExportMetalIOSurfaceInfoEXT', 'ExportMetalObjectCreateInfoEXT',
--- 'ExportMetalObjectTypeFlagBitsEXT', 'ExportMetalObjectTypeFlagsEXT',
--- 'ExportMetalObjectsInfoEXT', 'ExportMetalSharedEventInfoEXT',
--- 'ExportMetalTextureInfoEXT', 'ImportMetalBufferInfoEXT',
--- 'ImportMetalIOSurfaceInfoEXT', 'ImportMetalSharedEventInfoEXT',
--- 'ImportMetalTextureInfoEXT', 'exportMetalObjectsEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -819,8 +817,8 @@
 --
 -- = Description
 --
--- The app /must/ ensure that the configuration of the @id\<MTLBuffer>@
--- object is compatible with the configuration of the
+-- The application /must/ ensure that the configuration of the
+-- @id\<MTLBuffer>@ object is compatible with the configuration of the
 -- 'Vulkan.Core10.Handles.DeviceMemory'. Failure to do so results in
 -- undefined behavior.
 --
@@ -921,7 +919,7 @@
   , -- | @bufferView@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a
     -- 'Vulkan.Core10.Handles.BufferView'.
     bufferView :: BufferView
-  , -- | @plane@ indicates the plane of a multi-planar
+  , -- | @plane@ specifies the plane of a multi-planar
     -- 'Vulkan.Core10.Handles.Image' or 'Vulkan.Core10.Handles.ImageView'.
     plane :: ImageAspectFlagBits
   , -- | @mtlTexture@ is the Metal @id\<MTLTexture>@ object underlying the
@@ -992,9 +990,9 @@
 -- = Description
 --
 -- The @pNext@ chain /must/ include one 'ImportMetalTextureInfoEXT'
--- structure for each plane in the 'Vulkan.Core10.Handles.Image'. The app
--- /must/ ensure that the configuration of the Metal @id\<MTLTexture>@
--- objects are compatible with the configuration of the
+-- structure for each plane in the 'Vulkan.Core10.Handles.Image'. The
+-- application /must/ ensure that the configuration of the Metal
+-- @id\<MTLTexture>@ objects are compatible with the configuration of the
 -- 'Vulkan.Core10.Handles.Image'. Failure to do so results in undefined
 -- behavior.
 --
@@ -1006,7 +1004,7 @@
 -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data ImportMetalTextureInfoEXT = ImportMetalTextureInfoEXT
-  { -- | @plane@ indicates the plane of the 'Vulkan.Core10.Handles.Image' that
+  { -- | @plane@ specifies the plane of the 'Vulkan.Core10.Handles.Image' that
     -- the @id\<MTLTexture>@ object should be attached to.
     --
     -- #VUID-VkImportMetalTextureInfoEXT-plane-parameter# @plane@ /must/ be a
@@ -1134,7 +1132,7 @@
 -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the implementation will create
 -- a new @IOSurface@ to underlie the 'Vulkan.Core10.Handles.Image'.
 --
--- If provided, the app /must/ ensure that the configuration of the
+-- If provided, the application /must/ ensure that the configuration of the
 -- 'IOSurfaceRef' object is compatible with the configuration of the
 -- 'Vulkan.Core10.Handles.Image'. Failure to do so results in undefined
 -- behavior.
@@ -1286,8 +1284,8 @@
 -- both 'ImportMetalSharedEventInfoEXT' and
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo',
 -- the @signaledValue@ property of the imported @id\<MTLSharedEvent>@
--- object will be set to @initialValue@ of
--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo'.
+-- object will be set to
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo'::@initialValue@.
 --
 -- == Valid Usage (Implicit)
 --
@@ -1350,28 +1348,28 @@
 newtype ExportMetalObjectTypeFlagBitsEXT = ExportMetalObjectTypeFlagBitsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
--- | 'EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT' indicates a Metal
+-- | 'EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT' specifies that a Metal
 -- @MTLDevice@ may be exported.
 pattern EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000001
 
--- | 'EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT' indicates a Metal
--- @MTLCommandQueue@ may be exported.
+-- | 'EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT' specifies that a
+-- Metal @MTLCommandQueue@ may be exported.
 pattern EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000002
 
--- | 'EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT' indicates a Metal
+-- | 'EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT' specifies that a Metal
 -- @MTLBuffer@ may be exported.
 pattern EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000004
 
--- | 'EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT' indicates a Metal
+-- | 'EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT' specifies that a Metal
 -- @MTLTexture@ may be exported.
 pattern EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000008
 
--- | 'EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT' indicates a Metal
--- @IOSurface@ may be exported.
+-- | 'EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT' specifies that a
+-- Metal @IOSurface@ may be exported.
 pattern EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000010
 
--- | 'EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT' indicates a Metal
--- @MTLSharedEvent@ may be exported.
+-- | 'EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT' specifies that a
+-- Metal @MTLSharedEvent@ may be exported.
 pattern EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000020
 
 conNameExportMetalObjectTypeFlagBitsEXT :: String
@@ -1425,11 +1423,11 @@
       conNameExportMetalObjectTypeFlagBitsEXT
       ExportMetalObjectTypeFlagBitsEXT
 
-type EXT_METAL_OBJECTS_SPEC_VERSION = 1
+type EXT_METAL_OBJECTS_SPEC_VERSION = 2
 
 -- No documentation found for TopLevel "VK_EXT_METAL_OBJECTS_SPEC_VERSION"
 pattern EXT_METAL_OBJECTS_SPEC_VERSION :: forall a . Integral a => a
-pattern EXT_METAL_OBJECTS_SPEC_VERSION = 1
+pattern EXT_METAL_OBJECTS_SPEC_VERSION = 2
 
 
 type EXT_METAL_OBJECTS_EXTENSION_NAME = "VK_EXT_metal_objects"
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_metal_objects - device extension
 --
--- == VK_EXT_metal_objects
+-- = VK_EXT_metal_objects
 --
 -- [__Name String__]
 --     @VK_EXT_metal_objects@
@@ -15,10 +15,10 @@
 --     312
 --
 -- [__Revision__]
---     1
+--     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     None
@@ -34,7 +34,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2022-05-28
+--     2024-04-04
 --
 -- [__IP Status__]
 --     No known IP claims.
@@ -183,17 +183,15 @@
 --         mask fields to individual bit fields to simplify Valid Usage
 --         rules.
 --
+-- -   Revision 2, 2024-04-04 (Bill Hollings)
+--
+--     -   Add an @__unsafe_unretained@ ownership qualifier to all Metal
+--         object declarations, to support Automatic Reference Counting
+--         (ARC) on Apple devices.
+--
 -- == See Also
 --
--- 'IOSurfaceRef', 'MTLBuffer_id', 'MTLCommandQueue_id', 'MTLDevice_id',
--- 'MTLSharedEvent_id', 'MTLTexture_id', 'ExportMetalBufferInfoEXT',
--- 'ExportMetalCommandQueueInfoEXT', 'ExportMetalDeviceInfoEXT',
--- 'ExportMetalIOSurfaceInfoEXT', 'ExportMetalObjectCreateInfoEXT',
--- 'ExportMetalObjectTypeFlagBitsEXT', 'ExportMetalObjectTypeFlagsEXT',
--- 'ExportMetalObjectsInfoEXT', 'ExportMetalSharedEventInfoEXT',
--- 'ExportMetalTextureInfoEXT', 'ImportMetalBufferInfoEXT',
--- 'ImportMetalIOSurfaceInfoEXT', 'ImportMetalSharedEventInfoEXT',
--- 'ImportMetalTextureInfoEXT', 'exportMetalObjectsEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_metal_surface - instance extension
 --
--- == VK_EXT_metal_surface
+-- = VK_EXT_metal_surface
 --
 -- [__Name String__]
 --     @VK_EXT_metal_surface@
@@ -81,8 +81,7 @@
 --
 -- == See Also
 --
--- 'CAMetalLayer', 'MetalSurfaceCreateFlagsEXT',
--- 'MetalSurfaceCreateInfoEXT', 'createMetalSurfaceEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -311,7 +310,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_surface VK_EXT_metal_surface>,
--- 'MetalSurfaceCreateInfoEXT'
+-- 'Vulkan.Core10.FundamentalTypes.Flags', 'MetalSurfaceCreateInfoEXT'
 newtype MetalSurfaceCreateFlagsEXT = MetalSurfaceCreateFlagsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_metal_surface - instance extension
 --
--- == VK_EXT_metal_surface
+-- = VK_EXT_metal_surface
 --
 -- [__Name String__]
 --     @VK_EXT_metal_surface@
@@ -81,8 +81,7 @@
 --
 -- == See Also
 --
--- 'CAMetalLayer', 'MetalSurfaceCreateFlagsEXT',
--- 'MetalSurfaceCreateInfoEXT', 'createMetalSurfaceEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7848 +3,7754 @@
 --
 -- VK_EXT_multi_draw - device extension
 --
--- == VK_EXT_multi_draw
---
--- [__Name String__]
---     @VK_EXT_multi_draw@
---
--- [__Extension Type__]
---     Device extension
---
--- [__Registered Extension Number__]
---     393
---
--- [__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__]
---
---     -   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
---
--- [__Interactions and External Dependencies__]
---
---     -   Interacts with Vulkan 1.1.
---
---     -   Interacts with @VK_KHR_shader_draw_parameters@.
---
--- [__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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent 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.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_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',
---     '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_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',
---     '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_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',
---     '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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
---     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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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
---     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'
---     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-rasterizerDiscardEnable-09416# If the
---     @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# 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.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-rasterizerDiscardEnable-09419# 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, 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-None-09548# If the current render pass was
---     begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawMultiEXT-None-09549# If the current render pass was
---     begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 without 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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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-04875# If there is a shader object
---     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
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
---     or 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 there is a shader object
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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-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-pNext-09461# If the bound graphics pipeline
---     state was created with
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
---     in the @pNext@ chain of
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
---     any member of
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
---     has a value other than @1@ in @divisor@, and
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
---     /must/ be @0@
---
--- -   #VUID-vkCmdDrawMultiEXT-None-09462# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
---     are used for drawing or the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, any member of the
---     @pVertexBindingDescriptions@ parameter to the
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     call that sets this dynamic state has a value other than @1@ in
---     @divisor@, and
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
---     /must/ be @0@
---
--- -   #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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent 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.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_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',
---     '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_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',
---     '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_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',
---     '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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 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'
---     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-rasterizerDiscardEnable-09416# If the
---     @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# 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.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-rasterizerDiscardEnable-09419# 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, 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-None-09548# If the current render
---     pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09549# If the current render
---     pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 without 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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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-04875# If there is a shader
---     object 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
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
---     or 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 there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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-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# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance6 maintenance6>
---     is not enabled, a valid 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-pNext-09461# If the bound graphics
---     pipeline state was created with
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
---     in the @pNext@ chain of
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
---     any member of
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
---     has a value other than @1@ in @divisor@, and
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
---     /must/ be @0@
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09462# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
---     are used for drawing or the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, any member of the
---     @pVertexBindingDescriptions@ parameter to the
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     call that sets this dynamic state has a value other than @1@ in
---     @divisor@, and
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
---     /must/ be @0@
---
--- -   #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
+-- = VK_EXT_multi_draw
+--
+-- [__Name String__]
+--     @VK_EXT_multi_draw@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     393
+--
+-- [__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 Vulkan Version 1.1>
+--
+-- [__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
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   Interacts with Vulkan 1.1.
+--
+--     -   Interacts with @VK_KHR_shader_draw_parameters@.
+--
+-- [__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
+--
+-- No cross-references are available
+--
+-- == 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawMultiEXT-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of resources that
+--     is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified
+--     statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with type equal
+--     to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595# Input
+--     attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-pDepthInputAttachmentIndex-09596# Input
+--     attachment views accessed in a dynamic render pass via a shader
+--     object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawMultiEXT-InputAttachmentIndex-09597# If an input
+--     attachment view accessed in a dynamic render pass via a shader
+--     object has an @InputAttachmentIndex@, the @InputAttachmentIndex@
+--     /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08618# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07834# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07836# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07837# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07838# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07839# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the @VK_EXT_sample_locations@
+--     extension is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-06666# If the @VK_EXT_sample_locations@
+--     extension is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07840# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07841# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07843# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07844# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07845# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07847# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07848# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-viewportCount-03417# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-scissorCount-03418# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawMultiEXT-viewportCount-03419# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-04876# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-04877# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-logicOp-04878# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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
+--     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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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 bound
+--     pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07286# If
+--     the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07621# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07622# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07623# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object is bound to
+--     any graphics stage or a graphics pipeline is bound which was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09416# If the
+--     @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07636# If the @VK_EXT_provoking_vertex@
+--     extension is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07641# If the @VK_NV_viewport_swizzle@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419# 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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-coverageModulationTableEnable-07488# If a
+--     shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-None-09548# If the current render pass was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09549# If the current render pass was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09642# If the current render pass was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09643# If the bound graphics pipeline
+--     was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #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# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and that pipeline was created without
+--     enabling
+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'
+--     for @vertexInputs@, then 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 there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-primitiveTopology-10286# If there is a
+--     shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have set @primitiveTopology@ to
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
+--     prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-pStrides-04913# If the bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'
+--     dynamic state enabled, but without the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command, and the
+--     @pStrides@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-04914# If there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-Input-07939# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeRobustness vertexAttributeRobustness>
+--     is not enabled and there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled and either the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-legacyVertexAttributes legacyVertexAttributes>
+--     feature is not enabled or the SPIR-V Type associated with a given
+--     @Input@ variable of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ is 64-bit, 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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-04875# If there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @primitiveTopology@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-04879# If there is a shader object
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09637# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
+--     feature is not enabled, the 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',
+--     there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-stage-06481# The bound graphics pipeline
+--     /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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-pNext-09461# If the bound graphics pipeline
+--     state was created with
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
+--     in the @pNext@ chain of
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
+--     any member of
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
+--     has a value other than @1@ in @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09462# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
+--     are used for drawing or the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, any member of the
+--     @pVertexBindingDescriptions@ parameter to the
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     call that sets this dynamic state has a value other than @1@ in
+--     @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #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-drawCount-09628# If @drawCount@ is greater
+--     than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be greater
+--     than or equal to @sizeof@('MultiDrawInfoEXT')
+--
+-- == 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of
+--     resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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
+--     specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with type
+--     equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595#
+--     Input attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pDepthInputAttachmentIndex-09596#
+--     Input attachment views accessed in a dynamic render pass via a
+--     shader object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-InputAttachmentIndex-09597# If an
+--     input attachment view accessed in a dynamic render pass via a shader
+--     object has an @InputAttachmentIndex@, the @InputAttachmentIndex@
+--     /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08618# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07834# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07836# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07837# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07838# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07839# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07840# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07841# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07843# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07844# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07845# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07847# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07848# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04876# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04877# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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
+--     bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07621# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07622# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07623# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09416# If the
+--     @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# If a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419# 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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-coverageModulationTableEnable-07488#
+--     If a shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-None-09548# If the current render
+--     pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09549# If the current render
+--     pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09642# If the current render
+--     pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09643# If the bound graphics
+--     pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #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# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and that pipeline was created without
+--     enabling
+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'
+--     for @vertexInputs@, then 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 there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-primitiveTopology-10286# If there is
+--     a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have set @primitiveTopology@ to
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
+--     prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913# If the bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'
+--     dynamic state enabled, but without the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command, and the
+--     @pStrides@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04914# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-Input-07939# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeRobustness vertexAttributeRobustness>
+--     is not enabled and there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled and either the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-legacyVertexAttributes legacyVertexAttributes>
+--     feature is not enabled or the SPIR-V Type associated with a given
+--     @Input@ variable of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ is 64-bit, 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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-04875# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @primitiveTopology@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04879# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09637# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
+--     feature is not enabled, the 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',
+--     there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-stage-06481# The bound graphics
+--     pipeline /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance6 maintenance6>
+--     feature is not enabled, a valid index buffer /must/ be bound
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pNext-09461# If the bound graphics
+--     pipeline state was created with
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
+--     in the @pNext@ chain of
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
+--     any member of
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
+--     has a value other than @1@ in @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09462# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
+--     are used for drawing or the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, any member of the
+--     @pVertexBindingDescriptions@ parameter to the
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     call that sets this dynamic state has a value other than @1@ in
+--     @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-08798# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
+--     feature 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-drawCount-09629# If @drawCount@ is
+--     greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be
+--     greater than or equal to @sizeof@('MultiDrawIndexedInfoEXT')
 --
 -- == Valid Usage (Implicit)
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_multi_draw - device extension
 --
--- == VK_EXT_multi_draw
+-- = VK_EXT_multi_draw
 --
 -- [__Name String__]
 --     @VK_EXT_multi_draw@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -117,10 +119,7 @@
 --
 -- == See Also
 --
--- 'MultiDrawIndexedInfoEXT', 'MultiDrawInfoEXT',
--- 'PhysicalDeviceMultiDrawFeaturesEXT',
--- 'PhysicalDeviceMultiDrawPropertiesEXT', 'cmdDrawMultiEXT',
--- 'cmdDrawMultiIndexedEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_multisampled_render_to_single_sampled - device extension
 --
--- == VK_EXT_multisampled_render_to_single_sampled
+-- = VK_EXT_multisampled_render_to_single_sampled
 --
 -- [__Name String__]
 --     @VK_EXT_multisampled_render_to_single_sampled@
@@ -21,9 +21,13 @@
 --     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
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolve VK_KHR_depth_stencil_resolve>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__Contact__]
 --
@@ -162,9 +166,7 @@
 --
 -- == See Also
 --
--- 'MultisampledRenderToSingleSampledInfoEXT',
--- 'PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT',
--- 'SubpassResolvePerformanceQueryEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_multisampled_render_to_single_sampled - device extension
 --
--- == VK_EXT_multisampled_render_to_single_sampled
+-- = VK_EXT_multisampled_render_to_single_sampled
 --
 -- [__Name String__]
 --     @VK_EXT_multisampled_render_to_single_sampled@
@@ -21,9 +21,13 @@
 --     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
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolve VK_KHR_depth_stencil_resolve>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__Contact__]
 --
@@ -162,9 +166,7 @@
 --
 -- == See Also
 --
--- 'MultisampledRenderToSingleSampledInfoEXT',
--- 'PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT',
--- 'SubpassResolvePerformanceQueryEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_mutable_descriptor_type - device extension
 --
--- == VK_EXT_mutable_descriptor_type
+-- = VK_EXT_mutable_descriptor_type
 --
 -- [__Name String__]
 --     @VK_EXT_mutable_descriptor_type@
@@ -127,8 +127,7 @@
 --
 -- == See Also
 --
--- 'MutableDescriptorTypeCreateInfoEXT', 'MutableDescriptorTypeListEXT',
--- 'PhysicalDeviceMutableDescriptorTypeFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -188,31 +187,6 @@
 --
 -- = Description
 --
--- -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value
---     identifying this structure.
---
--- -   @pNext@ is @NULL@ or a pointer to a structure extending this
---     structure.
---
--- -   #features-mutableDescriptorType# @mutableDescriptorType@ indicates
---     that the implementation /must/ support using the
---     'Vulkan.Core10.Enums.DescriptorType.DescriptorType' of
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_EXT'
---     with at least the following descriptor types, where any combination
---     of the types /must/ be supported:
---
---     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE'
---
---     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'
---
---     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'
---
---     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---
---     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER'
---
---     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'
---
 -- -   Additionally, @mutableDescriptorType@ indicates that:
 --
 --     -   Non-uniform descriptor indexing /must/ be supported if all
@@ -263,7 +237,24 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceMutableDescriptorTypeFeaturesEXT = PhysicalDeviceMutableDescriptorTypeFeaturesEXT
-  { -- No documentation found for Nested "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT" "mutableDescriptorType"
+  { -- | #features-mutableDescriptorType# @mutableDescriptorType@ indicates that
+    -- the implementation /must/ support using the
+    -- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_EXT' with at
+    -- least the following descriptor types, where any combination of the types
+    -- /must/ be supported:
+    --
+    -- -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE'
+    --
+    -- -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'
+    --
+    -- -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'
+    --
+    -- -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+    --
+    -- -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER'
+    --
+    -- -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'
     mutableDescriptorType :: Bool }
   deriving (Typeable, Eq)
 #if defined(GENERIC_INSTANCES)
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_mutable_descriptor_type - device extension
 --
--- == VK_EXT_mutable_descriptor_type
+-- = VK_EXT_mutable_descriptor_type
 --
 -- [__Name String__]
 --     @VK_EXT_mutable_descriptor_type@
@@ -127,8 +127,7 @@
 --
 -- == See Also
 --
--- 'MutableDescriptorTypeCreateInfoEXT', 'MutableDescriptorTypeListEXT',
--- 'PhysicalDeviceMutableDescriptorTypeFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs b/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs
--- a/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs
+++ b/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_nested_command_buffer - device extension
 --
--- == VK_EXT_nested_command_buffer
+-- = VK_EXT_nested_command_buffer
 --
 -- [__Name String__]
 --     @VK_EXT_nested_command_buffer@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -74,7 +76,7 @@
 --
 -- -   Extending 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits':
 --
---     -   'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_INLINE_BIT_EXT'
+--     -   'RENDERING_CONTENTS_INLINE_BIT_EXT'
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
@@ -84,7 +86,7 @@
 --
 -- -   Extending 'Vulkan.Core10.Enums.SubpassContents.SubpassContents':
 --
---     -   'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT'
+--     -   'SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT'
 --
 -- == Issues
 --
@@ -109,8 +111,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceNestedCommandBufferFeaturesEXT',
--- 'PhysicalDeviceNestedCommandBufferPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -119,7 +120,9 @@
 --
 -- 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(..)
+module Vulkan.Extensions.VK_EXT_nested_command_buffer  ( pattern SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT
+                                                       , pattern RENDERING_CONTENTS_INLINE_BIT_EXT
+                                                       , PhysicalDeviceNestedCommandBufferFeaturesEXT(..)
                                                        , PhysicalDeviceNestedCommandBufferPropertiesEXT(..)
                                                        , EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION
                                                        , pattern EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION
@@ -149,8 +152,19 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlags)
+import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlagBits(RENDERING_CONTENTS_INLINE_BIT_KHR))
 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))
+import Vulkan.Core10.Enums.SubpassContents (SubpassContents(SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR))
+-- No documentation found for TopLevel "VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT"
+pattern SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR
+
+
+-- No documentation found for TopLevel "VK_RENDERING_CONTENTS_INLINE_BIT_EXT"
+pattern RENDERING_CONTENTS_INLINE_BIT_EXT = RENDERING_CONTENTS_INLINE_BIT_KHR
+
+
 -- | VkPhysicalDeviceNestedCommandBufferFeaturesEXT - Structure describing
 -- whether nested command buffers are supported by the implementation
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs-boot b/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_nested_command_buffer - device extension
 --
--- == VK_EXT_nested_command_buffer
+-- = VK_EXT_nested_command_buffer
 --
 -- [__Name String__]
 --     @VK_EXT_nested_command_buffer@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -74,7 +76,7 @@
 --
 -- -   Extending 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits':
 --
---     -   'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_INLINE_BIT_EXT'
+--     -   'RENDERING_CONTENTS_INLINE_BIT_EXT'
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
@@ -84,7 +86,7 @@
 --
 -- -   Extending 'Vulkan.Core10.Enums.SubpassContents.SubpassContents':
 --
---     -   'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT'
+--     -   'SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT'
 --
 -- == Issues
 --
@@ -109,8 +111,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceNestedCommandBufferFeaturesEXT',
--- 'PhysicalDeviceNestedCommandBufferPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_non_seamless_cube_map - device extension
 --
--- == VK_EXT_non_seamless_cube_map
+-- = VK_EXT_non_seamless_cube_map
 --
 -- [__Name String__]
 --     @VK_EXT_non_seamless_cube_map@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Special Uses__]
 --
@@ -90,7 +92,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceNonSeamlessCubeMapFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_non_seamless_cube_map - device extension
 --
--- == VK_EXT_non_seamless_cube_map
+-- = VK_EXT_non_seamless_cube_map
 --
 -- [__Name String__]
 --     @VK_EXT_non_seamless_cube_map@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Special Uses__]
 --
@@ -90,7 +92,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceNonSeamlessCubeMapFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_opacity_micromap - device extension
 --
--- == VK_EXT_opacity_micromap
+-- = VK_EXT_opacity_micromap
 --
 -- [__Name String__]
 --     @VK_EXT_opacity_micromap@
@@ -23,7 +23,11 @@
 -- [__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
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -47,7 +51,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_opacity_micromap.txt GLSL_EXT_opacity_micromap>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_opacity_micromap.txt GLSL_EXT_opacity_micromap>
 --
 -- [__Contributors__]
 --
@@ -371,24 +375,7 @@
 --
 -- == See Also
 --
--- 'AccelerationStructureTrianglesOpacityMicromapEXT',
--- 'BuildMicromapFlagBitsEXT', 'BuildMicromapFlagsEXT',
--- 'BuildMicromapModeEXT', 'CopyMemoryToMicromapInfoEXT',
--- 'CopyMicromapInfoEXT', 'CopyMicromapModeEXT',
--- 'CopyMicromapToMemoryInfoEXT', 'MicromapBuildInfoEXT',
--- 'MicromapBuildSizesInfoEXT', 'MicromapCreateFlagBitsEXT',
--- 'MicromapCreateFlagsEXT', 'MicromapCreateInfoEXT',
--- 'Vulkan.Extensions.Handles.MicromapEXT', 'MicromapTriangleEXT',
--- 'MicromapTypeEXT', 'MicromapUsageEXT', 'MicromapVersionInfoEXT',
--- 'OpacityMicromapFormatEXT', 'OpacityMicromapSpecialIndexEXT',
--- 'PhysicalDeviceOpacityMicromapFeaturesEXT',
--- 'PhysicalDeviceOpacityMicromapPropertiesEXT', 'buildMicromapsEXT',
--- 'cmdBuildMicromapsEXT', 'cmdCopyMemoryToMicromapEXT',
--- 'cmdCopyMicromapEXT', 'cmdCopyMicromapToMemoryEXT',
--- 'cmdWriteMicromapsPropertiesEXT', 'copyMemoryToMicromapEXT',
--- 'copyMicromapEXT', 'copyMicromapToMemoryEXT', 'createMicromapEXT',
--- 'destroyMicromapEXT', 'getDeviceMicromapCompatibilityEXT',
--- 'getMicromapBuildSizesEXT', 'writeMicromapsPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -627,8 +614,6 @@
 -- 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
@@ -755,8 +740,6 @@
 -- multiple micromaps builds, however there is no ordering or
 -- synchronization implied between any of the individual micromap builds.
 --
--- Note
---
 -- This means that there /cannot/ be any memory aliasing between any
 -- micromap memories or scratch memories being used by any of the builds.
 --
@@ -965,8 +948,6 @@
 -- multiple micromaps builds, however there is no ordering or
 -- synchronization implied between any of the individual micromap builds.
 --
--- Note
---
 -- This means that there /cannot/ be any memory aliasing between any
 -- micromap memories or scratch memories being used by any of the builds.
 --
@@ -1716,7 +1697,7 @@
                            => -- | @commandBuffer@ is the command buffer into which the command will be
                               -- recorded.
                               CommandBuffer
-                           -> -- | @pInfo@ is a pointer to a 'CopyMicromapToMemoryInfoEXT' structure
+                           -> -- | @pInfo@ is a pointer to a 'CopyMemoryToMicromapInfoEXT' structure
                               -- defining the copy operation.
                               CopyMemoryToMicromapInfoEXT
                            -> io ()
@@ -2035,21 +2016,22 @@
 --     or
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT'
 --
--- -   #VUID-vkWriteMicromapsPropertiesEXT-queryType-07573# If @queryType@
+-- -   #VUID-vkWriteMicromapsPropertiesEXT-queryType-10071# If @queryType@
 --     is
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT',
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT'
+--     or
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT'
 --     then @stride@ /must/ be a multiple of the size of
 --     'Vulkan.Core10.FundamentalTypes.DeviceSize'
 --
--- -   #VUID-vkWriteMicromapsPropertiesEXT-queryType-07574# If @queryType@
+-- -   #VUID-vkWriteMicromapsPropertiesEXT-queryType-10072# If @queryType@
 --     is
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT',
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT'
+--     or
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT'
 --     then @pData@ /must/ point to a
 --     'Vulkan.Core10.FundamentalTypes.DeviceSize'
 --
--- -   #VUID-vkWriteMicromapsPropertiesEXT-queryType-07575# If @queryType@
---     is
---
 -- -   #VUID-vkWriteMicromapsPropertiesEXT-dataSize-07576# @dataSize@
 --     /must/ be greater than or equal to @micromapCount@*@stride@
 --
@@ -2120,8 +2102,8 @@
                                QueryType
                             -> -- | @dataSize@ is the size in bytes of the buffer pointed to by @pData@.
                                ("dataSize" ::: Word64)
-                            -> -- | @pData@ is a pointer to a user-allocated buffer where the results will
-                               -- be written.
+                            -> -- | @pData@ is a pointer to an application-allocated buffer where the
+                               -- results will be written.
                                ("data" ::: Ptr ())
                             -> -- | @stride@ is the stride in bytes between results for individual queries
                                -- within @pData@.
@@ -2508,8 +2490,6 @@
 -- 'Vulkan.Extensions.VK_KHR_buffer_device_address.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR'
 -- errors.
 --
--- Note
---
 -- The expected usage for this is that a trace capture\/replay tool will
 -- add the
 -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT'
@@ -2664,8 +2644,6 @@
 --
 -- = Description
 --
--- Note
---
 -- @pVersionData@ is a /pointer/ to an array of
 -- 2×'Vulkan.Core10.APIConstants.UUID_SIZE' @uint8_t@ values instead of two
 -- 'Vulkan.Core10.APIConstants.UUID_SIZE' arrays as the expected use case
@@ -3614,11 +3592,11 @@
 newtype BuildMicromapFlagBitsEXT = BuildMicromapFlagBitsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
--- | 'BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT' indicates that the given
+-- | 'BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT' specifies that the given
 -- micromap build /should/ prioritize trace performance over build time.
 pattern BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = BuildMicromapFlagBitsEXT 0x00000001
 
--- | 'BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT' indicates that the given
+-- | 'BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT' specifies that the given
 -- micromap build /should/ prioritize build time over trace performance.
 pattern BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = BuildMicromapFlagBitsEXT 0x00000002
 
@@ -3835,8 +3813,6 @@
 --
 -- = Description
 --
--- Note
---
 -- For compactness, these values are stored as 16-bit in some structures.
 --
 -- = See Also
@@ -3847,12 +3823,12 @@
 
 -- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error
 
--- | 'OPACITY_MICROMAP_FORMAT_2_STATE_EXT' indicates that the given micromap
+-- | 'OPACITY_MICROMAP_FORMAT_2_STATE_EXT' specifies that the given micromap
 -- format has one bit per subtriangle encoding either fully opaque or fully
 -- transparent.
 pattern OPACITY_MICROMAP_FORMAT_2_STATE_EXT = OpacityMicromapFormatEXT 1
 
--- | 'OPACITY_MICROMAP_FORMAT_4_STATE_EXT' indicates that the given micromap
+-- | 'OPACITY_MICROMAP_FORMAT_4_STATE_EXT' specifies that the given micromap
 -- format has two bits per subtriangle encoding four modes which can be
 -- interpreted as described in
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-opacity-micromap ray traversal>.
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_opacity_micromap - device extension
 --
--- == VK_EXT_opacity_micromap
+-- = VK_EXT_opacity_micromap
 --
 -- [__Name String__]
 --     @VK_EXT_opacity_micromap@
@@ -23,7 +23,11 @@
 -- [__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
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -47,7 +51,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_opacity_micromap.txt GLSL_EXT_opacity_micromap>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_opacity_micromap.txt GLSL_EXT_opacity_micromap>
 --
 -- [__Contributors__]
 --
@@ -371,24 +375,7 @@
 --
 -- == See Also
 --
--- 'AccelerationStructureTrianglesOpacityMicromapEXT',
--- 'BuildMicromapFlagBitsEXT', 'BuildMicromapFlagsEXT',
--- 'BuildMicromapModeEXT', 'CopyMemoryToMicromapInfoEXT',
--- 'CopyMicromapInfoEXT', 'CopyMicromapModeEXT',
--- 'CopyMicromapToMemoryInfoEXT', 'MicromapBuildInfoEXT',
--- 'MicromapBuildSizesInfoEXT', 'MicromapCreateFlagBitsEXT',
--- 'MicromapCreateFlagsEXT', 'MicromapCreateInfoEXT',
--- 'Vulkan.Extensions.Handles.MicromapEXT', 'MicromapTriangleEXT',
--- 'MicromapTypeEXT', 'MicromapUsageEXT', 'MicromapVersionInfoEXT',
--- 'OpacityMicromapFormatEXT', 'OpacityMicromapSpecialIndexEXT',
--- 'PhysicalDeviceOpacityMicromapFeaturesEXT',
--- 'PhysicalDeviceOpacityMicromapPropertiesEXT', 'buildMicromapsEXT',
--- 'cmdBuildMicromapsEXT', 'cmdCopyMemoryToMicromapEXT',
--- 'cmdCopyMicromapEXT', 'cmdCopyMicromapToMemoryEXT',
--- 'cmdWriteMicromapsPropertiesEXT', 'copyMemoryToMicromapEXT',
--- 'copyMicromapEXT', 'copyMicromapToMemoryEXT', 'createMicromapEXT',
--- 'destroyMicromapEXT', 'getDeviceMicromapCompatibilityEXT',
--- 'getMicromapBuildSizesEXT', 'writeMicromapsPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pageable_device_local_memory - device extension
 --
--- == VK_EXT_pageable_device_local_memory
+-- = VK_EXT_pageable_device_local_memory
 --
 -- [__Name String__]
 --     @VK_EXT_pageable_device_local_memory@
@@ -125,8 +125,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT',
--- 'setDeviceMemoryPriorityEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pageable_device_local_memory - device extension
 --
--- == VK_EXT_pageable_device_local_memory
+-- = VK_EXT_pageable_device_local_memory
 --
 -- [__Name String__]
 --     @VK_EXT_pageable_device_local_memory@
@@ -125,8 +125,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT',
--- 'setDeviceMemoryPriorityEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pci_bus_info - device extension
 --
--- == VK_EXT_pci_bus_info
+-- = VK_EXT_pci_bus_info
 --
 -- [__Name String__]
 --     @VK_EXT_pci_bus_info@
@@ -18,12 +18,12 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -90,7 +90,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePCIBusInfoPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pci_bus_info - device extension
 --
--- == VK_EXT_pci_bus_info
+-- = VK_EXT_pci_bus_info
 --
 -- [__Name String__]
 --     @VK_EXT_pci_bus_info@
@@ -18,12 +18,12 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -90,7 +90,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePCIBusInfoPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_physical_device_drm - device extension
 --
--- == VK_EXT_physical_device_drm
+-- = VK_EXT_physical_device_drm
 --
 -- [__Name String__]
 --     @VK_EXT_physical_device_drm@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -93,7 +95,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDrmPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_physical_device_drm - device extension
 --
--- == VK_EXT_physical_device_drm
+-- = VK_EXT_physical_device_drm
 --
 -- [__Name String__]
 --     @VK_EXT_physical_device_drm@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -93,7 +95,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDrmPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pipeline_creation_cache_control - device extension
 --
--- == VK_EXT_pipeline_creation_cache_control
+-- = VK_EXT_pipeline_creation_cache_control
 --
 -- [__Name String__]
 --     @VK_EXT_pipeline_creation_cache_control@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -184,9 +186,11 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- EXT suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- EXT suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Version History
 --
@@ -207,8 +211,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT',
--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PipelineCacheCreateFlagBits'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pipeline_creation_feedback - device extension
 --
--- == VK_EXT_pipeline_creation_feedback
+-- = VK_EXT_pipeline_creation_feedback
 --
 -- [__Name String__]
 --     @VK_EXT_pipeline_creation_feedback@
@@ -106,9 +106,11 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- EXT suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- EXT suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Version History
 --
@@ -118,9 +120,7 @@
 --
 -- == See Also
 --
--- 'PipelineCreationFeedbackCreateInfoEXT', 'PipelineCreationFeedbackEXT',
--- 'PipelineCreationFeedbackFlagBitsEXT',
--- 'PipelineCreationFeedbackFlagsEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pipeline_library_group_handles - device extension
 --
--- == VK_EXT_pipeline_library_group_handles
+-- = VK_EXT_pipeline_library_group_handles
 --
 -- [__Name String__]
 --     @VK_EXT_pipeline_library_group_handles@
@@ -104,7 +104,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pipeline_library_group_handles - device extension
 --
--- == VK_EXT_pipeline_library_group_handles
+-- = VK_EXT_pipeline_library_group_handles
 --
 -- [__Name String__]
 --     @VK_EXT_pipeline_library_group_handles@
@@ -104,7 +104,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pipeline_properties - device extension
 --
--- == VK_EXT_pipeline_properties
+-- = VK_EXT_pipeline_properties
 --
 -- [__Name String__]
 --     @VK_EXT_pipeline_properties@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -113,7 +115,7 @@
 -- (2) This is intended to be a general pipeline properties query, but is
 -- currently only retrieving the pipeline identifier. Should the pipeline
 -- identifier query be mandatory for this extension and for all queries
--- using this entry point?
+-- using this command?
 --
 -- __RESOLVED__: Use 'Vulkan.CStruct.Extends.BaseOutStructure' for the
 -- return parameter. Currently this is required to actually be a
@@ -136,8 +138,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePipelinePropertiesFeaturesEXT', 'PipelineInfoEXT',
--- 'PipelinePropertiesIdentifierEXT', 'getPipelinePropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pipeline_properties - device extension
 --
--- == VK_EXT_pipeline_properties
+-- = VK_EXT_pipeline_properties
 --
 -- [__Name String__]
 --     @VK_EXT_pipeline_properties@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -113,7 +115,7 @@
 -- (2) This is intended to be a general pipeline properties query, but is
 -- currently only retrieving the pipeline identifier. Should the pipeline
 -- identifier query be mandatory for this extension and for all queries
--- using this entry point?
+-- using this command?
 --
 -- __RESOLVED__: Use 'Vulkan.CStruct.Extends.BaseOutStructure' for the
 -- return parameter. Currently this is required to actually be a
@@ -136,8 +138,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePipelinePropertiesFeaturesEXT', 'PipelineInfoEXT',
--- 'PipelinePropertiesIdentifierEXT', 'getPipelinePropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pipeline_protected_access - device extension
 --
--- == VK_EXT_pipeline_protected_access
+-- = VK_EXT_pipeline_protected_access
 --
 -- [__Name String__]
 --     @VK_EXT_pipeline_protected_access@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -86,7 +88,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePipelineProtectedAccessFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pipeline_protected_access - device extension
 --
--- == VK_EXT_pipeline_protected_access
+-- = VK_EXT_pipeline_protected_access
 --
 -- [__Name String__]
 --     @VK_EXT_pipeline_protected_access@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -86,7 +88,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePipelineProtectedAccessFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pipeline_robustness - device extension
 --
--- == VK_EXT_pipeline_robustness
+-- = VK_EXT_pipeline_robustness
 --
 -- [__Name String__]
 --     @VK_EXT_pipeline_robustness@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -117,10 +119,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePipelineRobustnessFeaturesEXT',
--- 'PhysicalDevicePipelineRobustnessPropertiesEXT',
--- 'PipelineRobustnessBufferBehaviorEXT',
--- 'PipelineRobustnessCreateInfoEXT', 'PipelineRobustnessImageBehaviorEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -191,16 +190,14 @@
 --
 -- = Description
 --
--- Note
---
--- Enabling
+-- Enabling the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustness pipelineRobustness>
--- may, on some platforms, incur a minor performance cost when
+-- feature may, on some platforms, incur a minor performance cost when the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
--- is disabled, even for pipelines which do not make use of any robustness
--- features. If robustness is not needed,
+-- feature is not enabled, even for pipelines which do not make use of any
+-- robustness features. If robustness is not needed, the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustness pipelineRobustness>
--- should not be enabled by an application.
+-- feature should not be enabled by an application.
 --
 -- If the 'PhysicalDevicePipelineRobustnessFeaturesEXT' structure is
 -- included in the @pNext@ chain of the
@@ -384,7 +381,7 @@
 -- 'PipelineRobustnessImageBehaviorEXT',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PipelineRobustnessCreateInfoEXT = PipelineRobustnessCreateInfoEXT
-  { -- | @storageBuffers@ sets the behaviour of out of bounds accesses made to
+  { -- | @storageBuffers@ sets the behavior of out of bounds accesses made to
     -- resources bound as:
     --
     -- -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'
@@ -393,7 +390,7 @@
     --
     -- -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
     storageBuffers :: PipelineRobustnessBufferBehaviorEXT
-  , -- | @uniformBuffers@ describes the behaviour of out of bounds accesses made
+  , -- | @uniformBuffers@ describes the behavior of out of bounds accesses made
     -- to resources bound as:
     --
     -- -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'
@@ -404,10 +401,10 @@
     --
     -- -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'
     uniformBuffers :: PipelineRobustnessBufferBehaviorEXT
-  , -- | @vertexInputs@ describes the behaviour of out of bounds accesses made to
+  , -- | @vertexInputs@ describes the behavior of out of bounds accesses made to
     -- vertex input attributes
     vertexInputs :: PipelineRobustnessBufferBehaviorEXT
-  , -- | @images@ describes the behaviour of out of bounds accesses made to
+  , -- | @images@ describes the behavior of out of bounds accesses made to
     -- resources bound as:
     --
     -- -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE'
@@ -495,19 +492,19 @@
 -- 'PipelineRobustnessImageBehaviorEXT',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDevicePipelineRobustnessPropertiesEXT = PhysicalDevicePipelineRobustnessPropertiesEXT
-  { -- | @defaultRobustnessStorageBuffers@ describes the behaviour of out of
+  { -- | @defaultRobustnessStorageBuffers@ describes the behavior of out of
     -- bounds accesses made to storage buffers when no robustness features are
     -- enabled
     defaultRobustnessStorageBuffers :: PipelineRobustnessBufferBehaviorEXT
-  , -- | @defaultRobustnessUniformBuffers@ describes the behaviour of out of
+  , -- | @defaultRobustnessUniformBuffers@ describes the behavior of out of
     -- bounds accesses made to uniform buffers when no robustness features are
     -- enabled
     defaultRobustnessUniformBuffers :: PipelineRobustnessBufferBehaviorEXT
-  , -- | @defaultRobustnessVertexInputs@ describes the behaviour of out of bounds
+  , -- | @defaultRobustnessVertexInputs@ describes the behavior of out of bounds
     -- accesses made to vertex input attributes when no robustness features are
     -- enabled
     defaultRobustnessVertexInputs :: PipelineRobustnessBufferBehaviorEXT
-  , -- | @defaultRobustnessImages@ describes the behaviour of out of bounds
+  , -- | @defaultRobustnessImages@ describes the behavior of out of bounds
     -- accesses made to images when no robustness features are enabled
     defaultRobustnessImages :: PipelineRobustnessImageBehaviorEXT
   }
@@ -577,7 +574,7 @@
 
 -- | 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT' specifies that
 -- this pipeline stage follows the behavior of robustness features that are
--- enabled on the device that created this pipeline
+-- enabled that created this pipeline
 pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = PipelineRobustnessBufferBehaviorEXT 0
 
 -- | 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT' specifies that buffer
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_pipeline_robustness - device extension
 --
--- == VK_EXT_pipeline_robustness
+-- = VK_EXT_pipeline_robustness
 --
 -- [__Name String__]
 --     @VK_EXT_pipeline_robustness@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -117,10 +119,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePipelineRobustnessFeaturesEXT',
--- 'PhysicalDevicePipelineRobustnessPropertiesEXT',
--- 'PipelineRobustnessBufferBehaviorEXT',
--- 'PipelineRobustnessCreateInfoEXT', 'PipelineRobustnessImageBehaviorEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_post_depth_coverage - device extension
 --
--- == VK_EXT_post_depth_coverage
+-- = VK_EXT_post_depth_coverage
 --
 -- [__Name String__]
 --     @VK_EXT_post_depth_coverage@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     None
diff --git a/src/Vulkan/Extensions/VK_EXT_present_mode_fifo_latest_ready.hs b/src/Vulkan/Extensions/VK_EXT_present_mode_fifo_latest_ready.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_present_mode_fifo_latest_ready.hs
@@ -0,0 +1,219 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_present_mode_fifo_latest_ready - device extension
+--
+-- = VK_EXT_present_mode_fifo_latest_ready
+--
+-- [__Name String__]
+--     @VK_EXT_present_mode_fifo_latest_ready@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     362
+--
+-- [__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>
+--
+-- [__Contact__]
+--
+--     -   Lionel Duc
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_present_mode_fifo_latest_ready] @nvlduc%0A*Here describe the issue or question you have about the VK_EXT_present_mode_fifo_latest_ready extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_present_mode_fifo_latest_ready.adoc VK_EXT_present_mode_fifo_latest_ready>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-05-28
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   James Jones, NVIDIA
+--
+--     -   Lionel Duc, NVIDIA
+--
+-- == Description
+--
+-- This device extension adds a new present mode,
+-- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_LATEST_READY_EXT'.
+--
+-- This tear-free present mode behaves much like
+-- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_KHR', except that
+-- each vertical blanking period dequeues consecutive present requests
+-- until the latest ready is found to update the current image.
+--
+-- While this seems similar in concept to
+-- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR', the
+-- fundamental difference is that the processing of the present requests is
+-- done during vblank. From the application perspective, this means for
+-- example, that in a flip-based model, a single vblank /may/ cause
+-- multiple swapchain images to be released at once, while
+-- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR' /may/
+-- continuously be releasing images as new requests become ready.
+--
+-- This additional present mode is useful when using a time-based present
+-- API.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME'
+--
+-- -   'EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_LATEST_READY_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-05-28 (Lionel Duc)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_present_mode_fifo_latest_ready 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_present_mode_fifo_latest_ready  ( PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(..)
+                                                                , EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION
+                                                                , pattern EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION
+                                                                , EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME
+                                                                , pattern EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME
+                                                                , PresentModeKHR(..)
+                                                                ) 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_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT))
+import Vulkan.Extensions.VK_KHR_surface (PresentModeKHR(..))
+-- | VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT - Structure
+-- describing support for VK_PRESENT_MODE_FIFO_LATEST_READY_EXT
+--
+-- = Description
+--
+-- If the 'PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT' 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. 'PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT' /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_present_mode_fifo_latest_ready VK_EXT_present_mode_fifo_latest_ready>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT = PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
+  { -- | #features-presentModeFifoLatestReady# @presentModeFifoLatestReady@
+    -- specifies whether the implementation supports the
+    -- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_LATEST_READY_EXT'
+    -- present mode.
+    presentModeFifoLatestReady :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT)
+#endif
+deriving instance Show PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
+
+instance ToCStruct PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (presentModeFifoLatestReady))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT where
+  peekCStruct p = do
+    presentModeFifoLatestReady <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
+             (bool32ToBool presentModeFifoLatestReady)
+
+instance Storable PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT where
+  zero = PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
+           zero
+
+
+type EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION"
+pattern EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION = 1
+
+
+type EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME = "VK_EXT_present_mode_fifo_latest_ready"
+
+-- No documentation found for TopLevel "VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME"
+pattern EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME = "VK_EXT_present_mode_fifo_latest_ready"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_present_mode_fifo_latest_ready.hs-boot b/src/Vulkan/Extensions/VK_EXT_present_mode_fifo_latest_ready.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_present_mode_fifo_latest_ready.hs-boot
@@ -0,0 +1,121 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_present_mode_fifo_latest_ready - device extension
+--
+-- = VK_EXT_present_mode_fifo_latest_ready
+--
+-- [__Name String__]
+--     @VK_EXT_present_mode_fifo_latest_ready@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     362
+--
+-- [__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>
+--
+-- [__Contact__]
+--
+--     -   Lionel Duc
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_present_mode_fifo_latest_ready] @nvlduc%0A*Here describe the issue or question you have about the VK_EXT_present_mode_fifo_latest_ready extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_present_mode_fifo_latest_ready.adoc VK_EXT_present_mode_fifo_latest_ready>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-05-28
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   James Jones, NVIDIA
+--
+--     -   Lionel Duc, NVIDIA
+--
+-- == Description
+--
+-- This device extension adds a new present mode,
+-- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_LATEST_READY_EXT'.
+--
+-- This tear-free present mode behaves much like
+-- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_KHR', except that
+-- each vertical blanking period dequeues consecutive present requests
+-- until the latest ready is found to update the current image.
+--
+-- While this seems similar in concept to
+-- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR', the
+-- fundamental difference is that the processing of the present requests is
+-- done during vblank. From the application perspective, this means for
+-- example, that in a flip-based model, a single vblank /may/ cause
+-- multiple swapchain images to be released at once, while
+-- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR' /may/
+-- continuously be releasing images as new requests become ready.
+--
+-- This additional present mode is useful when using a time-based present
+-- API.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME'
+--
+-- -   'EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_LATEST_READY_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-05-28 (Lionel Duc)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_present_mode_fifo_latest_ready 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_present_mode_fifo_latest_ready  (PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
+
+instance ToCStruct PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
+instance Show PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
+
+instance FromCStruct PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_primitive_topology_list_restart - device extension
 --
--- == VK_EXT_primitive_topology_list_restart
+-- = VK_EXT_primitive_topology_list_restart
 --
 -- [__Name String__]
 --     @VK_EXT_primitive_topology_list_restart@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -85,7 +87,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_primitive_topology_list_restart - device extension
 --
--- == VK_EXT_primitive_topology_list_restart
+-- = VK_EXT_primitive_topology_list_restart
 --
 -- [__Name String__]
 --     @VK_EXT_primitive_topology_list_restart@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -85,7 +87,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_primitives_generated_query - device extension
 --
--- == VK_EXT_primitives_generated_query
+-- = VK_EXT_primitives_generated_query
 --
 -- [__Name String__]
 --     @VK_EXT_primitives_generated_query@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
@@ -130,7 +130,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_primitives_generated_query - device extension
 --
--- == VK_EXT_primitives_generated_query
+-- = VK_EXT_primitives_generated_query
 --
 -- [__Name String__]
 --     @VK_EXT_primitives_generated_query@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
@@ -130,7 +130,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_private_data - device extension
 --
--- == VK_EXT_private_data
+-- = VK_EXT_private_data
 --
 -- [__Name String__]
 --     @VK_EXT_private_data@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -55,7 +57,7 @@
 --
 -- This extension is a device extension which enables attaching arbitrary
 -- payloads to Vulkan objects. It introduces the idea of private data slots
--- as a means of storing a 64-bit unsigned integer of application defined
+-- as a means of storing a 64-bit unsigned integer of application-defined
 -- data. Private data slots can be created or destroyed any time an
 -- associated device is available. Private data slots can be reserved at
 -- device creation time, and limiting use to the amount reserved will allow
@@ -113,9 +115,11 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- EXT suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- EXT suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Examples
 --
@@ -152,11 +156,7 @@
 --
 -- == See Also
 --
--- 'DevicePrivateDataCreateInfoEXT',
--- 'PhysicalDevicePrivateDataFeaturesEXT', 'PrivateDataSlotCreateFlagsEXT',
--- 'PrivateDataSlotCreateInfoEXT', 'PrivateDataSlotEXT',
--- 'createPrivateDataSlotEXT', 'destroyPrivateDataSlotEXT',
--- 'getPrivateDataEXT', 'setPrivateDataEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_provoking_vertex - device extension
 --
--- == VK_EXT_provoking_vertex
+-- = VK_EXT_provoking_vertex
 --
 -- [__Name String__]
 --     @VK_EXT_provoking_vertex@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -168,10 +170,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceProvokingVertexFeaturesEXT',
--- 'PhysicalDeviceProvokingVertexPropertiesEXT',
--- 'PipelineRasterizationProvokingVertexStateCreateInfoEXT',
--- 'ProvokingVertexModeEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_provoking_vertex - device extension
 --
--- == VK_EXT_provoking_vertex
+-- = VK_EXT_provoking_vertex
 --
 -- [__Name String__]
 --     @VK_EXT_provoking_vertex@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -168,10 +170,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceProvokingVertexFeaturesEXT',
--- 'PhysicalDeviceProvokingVertexPropertiesEXT',
--- 'PipelineRasterizationProvokingVertexStateCreateInfoEXT',
--- 'ProvokingVertexModeEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_queue_family_foreign - device extension
 --
--- == VK_EXT_queue_family_foreign
+-- = VK_EXT_queue_family_foreign
 --
 -- [__Name String__]
 --     @VK_EXT_queue_family_foreign@
@@ -18,17 +18,17 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
 --     -   Lina Versace
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_queue_family_foreign] @versalinyaa%0A*Here describe the issue or question you have about the VK_EXT_queue_family_foreign extension* >
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_queue_family_foreign] @linyaa-kiwi%0A*Here describe the issue or question you have about the VK_EXT_queue_family_foreign extension* >
 --
 -- == Other Extension Metadata
 --
@@ -95,7 +95,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_rasterization_order_attachment_access - device extension
 --
--- == VK_EXT_rasterization_order_attachment_access
+-- = VK_EXT_rasterization_order_attachment_access
 --
 -- [__Name String__]
 --     @VK_EXT_rasterization_order_attachment_access@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -109,9 +111,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT',
--- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits',
--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_rasterization_order_attachment_access - device extension
 --
--- == VK_EXT_rasterization_order_attachment_access
+-- = VK_EXT_rasterization_order_attachment_access
 --
 -- [__Name String__]
 --     @VK_EXT_rasterization_order_attachment_access@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -109,9 +111,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT',
--- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits',
--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_rgba10x6_formats - device extension
 --
--- == VK_EXT_rgba10x6_formats
+-- = VK_EXT_rgba10x6_formats
 --
 -- [__Name String__]
 --     @VK_EXT_rgba10x6_formats@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -98,7 +100,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRGBA10X6FormatsFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_rgba10x6_formats - device extension
 --
--- == VK_EXT_rgba10x6_formats
+-- = VK_EXT_rgba10x6_formats
 --
 -- [__Name String__]
 --     @VK_EXT_rgba10x6_formats@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -98,7 +100,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRGBA10X6FormatsFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_robustness2 - device extension
 --
--- == VK_EXT_robustness2
+-- = VK_EXT_robustness2
 --
 -- [__Name String__]
 --     @VK_EXT_robustness2@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -118,8 +118,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRobustness2FeaturesEXT',
--- 'PhysicalDeviceRobustness2PropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -169,41 +168,6 @@
 --
 -- = Description
 --
--- -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value
---     identifying this structure.
---
--- -   @pNext@ is @NULL@ or a pointer to a structure extending this
---     structure.
---
--- -   #features-robustBufferAccess2# @robustBufferAccess2@ indicates
---     whether buffer accesses are tightly bounds-checked against the range
---     of the descriptor. Uniform buffers /must/ be bounds-checked to the
---     range of the descriptor, where the range is rounded up to a multiple
---     of
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>.
---     Storage buffers /must/ be bounds-checked to the range of the
---     descriptor, where the range is rounded up to a multiple of
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>.
---     Out of bounds buffer loads will return zero values, and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures image load, sample, and atomic operations>
---     from texel buffers will have (0,0,1) values
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba inserted for missing G, B, or A components>
---     based on the format.
---
--- -   #features-robustImageAccess2# @robustImageAccess2@ indicates whether
---     image accesses are tightly bounds-checked against the dimensions of
---     the image view. Out of bounds
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures image load, sample, and atomic operations>
---     from images will return zero values, with (0,0,1) values
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba inserted for missing G, B, or A components>
---     based on the format.
---
--- -   #features-nullDescriptor# @nullDescriptor@ indicates whether
---     descriptors /can/ be written with a
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' resource or view, which are
---     considered valid to access and act as if the descriptor were bound
---     to nothing.
---
 -- If the 'PhysicalDeviceRobustness2FeaturesEXT' structure is included in
 -- the @pNext@ chain of the
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'
@@ -233,11 +197,32 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceRobustness2FeaturesEXT = PhysicalDeviceRobustness2FeaturesEXT
-  { -- No documentation found for Nested "VkPhysicalDeviceRobustness2FeaturesEXT" "robustBufferAccess2"
+  { -- | #features-robustBufferAccess2# @robustBufferAccess2@ indicates whether
+    -- buffer accesses are tightly bounds-checked against the range of the
+    -- descriptor. Uniform buffers /must/ be bounds-checked to the range of the
+    -- descriptor, where the range is rounded up to a multiple of
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>.
+    -- Storage buffers /must/ be bounds-checked to the range of the descriptor,
+    -- where the range is rounded up to a multiple of
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>.
+    -- Out of bounds buffer loads will return zero values, and
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures image load, sample, and atomic operations>
+    -- from texel buffers will have (0,0,1) values
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba inserted for missing G, B, or A components>
+    -- based on the format.
     robustBufferAccess2 :: Bool
-  , -- No documentation found for Nested "VkPhysicalDeviceRobustness2FeaturesEXT" "robustImageAccess2"
+  , -- | #features-robustImageAccess2# @robustImageAccess2@ indicates whether
+    -- image accesses are tightly bounds-checked against the dimensions of the
+    -- image view. Out of bounds
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures image load, sample, and atomic operations>
+    -- from images will return zero values, with (0,0,1) values
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba inserted for missing G, B, or A components>
+    -- based on the format.
     robustImageAccess2 :: Bool
-  , -- No documentation found for Nested "VkPhysicalDeviceRobustness2FeaturesEXT" "nullDescriptor"
+  , -- | #features-nullDescriptor# @nullDescriptor@ indicates whether descriptors
+    -- /can/ be written with a 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+    -- resource or view, which are considered valid to access and act as if the
+    -- descriptor were bound to nothing.
     nullDescriptor :: Bool
   }
   deriving (Typeable, Eq)
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_robustness2 - device extension
 --
--- == VK_EXT_robustness2
+-- = VK_EXT_robustness2
 --
 -- [__Name String__]
 --     @VK_EXT_robustness2@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -118,8 +118,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRobustness2FeaturesEXT',
--- 'PhysicalDeviceRobustness2PropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_sample_locations - device extension
 --
--- == VK_EXT_sample_locations
+-- = VK_EXT_sample_locations
 --
 -- [__Name String__]
 --     @VK_EXT_sample_locations@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -155,12 +155,7 @@
 --
 -- == See Also
 --
--- 'AttachmentSampleLocationsEXT', 'MultisamplePropertiesEXT',
--- 'PhysicalDeviceSampleLocationsPropertiesEXT',
--- 'PipelineSampleLocationsStateCreateInfoEXT',
--- 'RenderPassSampleLocationsBeginInfoEXT', 'SampleLocationEXT',
--- 'SampleLocationsInfoEXT', 'SubpassSampleLocationsEXT',
--- 'cmdSetSampleLocationsEXT', 'getPhysicalDeviceMultisamplePropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_sample_locations - device extension
 --
--- == VK_EXT_sample_locations
+-- = VK_EXT_sample_locations
 --
 -- [__Name String__]
 --     @VK_EXT_sample_locations@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -155,12 +155,7 @@
 --
 -- == See Also
 --
--- 'AttachmentSampleLocationsEXT', 'MultisamplePropertiesEXT',
--- 'PhysicalDeviceSampleLocationsPropertiesEXT',
--- 'PipelineSampleLocationsStateCreateInfoEXT',
--- 'RenderPassSampleLocationsBeginInfoEXT', 'SampleLocationEXT',
--- 'SampleLocationsInfoEXT', 'SubpassSampleLocationsEXT',
--- 'cmdSetSampleLocationsEXT', 'getPhysicalDeviceMultisamplePropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_sampler_filter_minmax - device extension
 --
--- == VK_EXT_sampler_filter_minmax
+-- = VK_EXT_sampler_filter_minmax
 --
 -- [__Name String__]
 --     @VK_EXT_sampler_filter_minmax@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -65,7 +67,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the EXT suffix omitted. The original type, enum and command names are
+-- the EXT suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -121,8 +123,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceSamplerFilterMinmaxPropertiesEXT',
--- 'SamplerReductionModeCreateInfoEXT', 'SamplerReductionModeEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_scalar_block_layout - device extension
 --
--- == VK_EXT_scalar_block_layout
+-- = VK_EXT_scalar_block_layout
 --
 -- [__Name String__]
 --     @VK_EXT_scalar_block_layout@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -59,11 +61,12 @@
 --
 -- == Promotion to Vulkan 1.2
 --
--- Functionality in this extension is included in core Vulkan 1.2, with the
+-- Vulkan APIs in this extension are included in core Vulkan 1.2, with the
 -- EXT suffix omitted. However, if Vulkan 1.2 is supported and this
--- extension is not, the @scalarBlockLayout@ capability is optional. The
--- original type, enum and command names are still available as aliases of
--- the core functionality.
+-- extension is not, the @scalarBlockLayout@ capability is optional.
+-- External interactions defined by this extension, such as SPIR-V token
+-- names, retain their original names. The original Vulkan API names are
+-- still available as aliases of the core functionality.
 --
 -- == New Structures
 --
@@ -91,7 +94,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceScalarBlockLayoutFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_separate_stencil_usage - device extension
 --
--- == VK_EXT_separate_stencil_usage
+-- = VK_EXT_separate_stencil_usage
 --
 -- [__Name String__]
 --     @VK_EXT_separate_stencil_usage@
@@ -55,7 +55,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the EXT suffix omitted. The original type, enum and command names are
+-- the EXT suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -83,7 +83,7 @@
 --
 -- == See Also
 --
--- 'ImageStencilUsageCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_atomic_float - device extension
 --
--- == VK_EXT_shader_atomic_float
+-- = VK_EXT_shader_atomic_float
 --
 -- [__Name String__]
 --     @VK_EXT_shader_atomic_float@
@@ -18,13 +18,21 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with
+--         VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::sparseImageFloat32AtomicAdd
+--
+--     -   Interacts with
+--         VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::sparseImageFloat32Atomics
+--
 -- [__SPIR-V Dependencies__]
 --
 --     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_atomic_float_add.html SPV_EXT_shader_atomic_float_add>
@@ -45,7 +53,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_atomic_float.txt GL_EXT_shader_atomic_float>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_shader_atomic_float.txt GL_EXT_shader_atomic_float>
 --
 -- [__Contributors__]
 --
@@ -94,7 +102,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderAtomicFloatFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_atomic_float - device extension
 --
--- == VK_EXT_shader_atomic_float
+-- = VK_EXT_shader_atomic_float
 --
 -- [__Name String__]
 --     @VK_EXT_shader_atomic_float@
@@ -18,13 +18,21 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with
+--         VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::sparseImageFloat32AtomicAdd
+--
+--     -   Interacts with
+--         VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::sparseImageFloat32Atomics
+--
 -- [__SPIR-V Dependencies__]
 --
 --     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_atomic_float_add.html SPV_EXT_shader_atomic_float_add>
@@ -45,7 +53,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_atomic_float.txt GL_EXT_shader_atomic_float>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_shader_atomic_float.txt GL_EXT_shader_atomic_float>
 --
 -- [__Contributors__]
 --
@@ -94,7 +102,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderAtomicFloatFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_atomic_float2 - device extension
 --
--- == VK_EXT_shader_atomic_float2
+-- = VK_EXT_shader_atomic_float2
 --
 -- [__Name String__]
 --     @VK_EXT_shader_atomic_float2@
@@ -18,11 +18,16 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with
+--         VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::sparseImageFloat32AtomicMinMax
+--
 -- [__SPIR-V Dependencies__]
 --
 --     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_atomic_float16_add.html SPV_EXT_shader_atomic_float16_add>
@@ -45,7 +50,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_atomic_float2.txt GLSL_EXT_shader_atomic_float2>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_shader_atomic_float2.txt GLSL_EXT_shader_atomic_float2>
 --
 -- [__Contributors__]
 --
@@ -111,7 +116,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderAtomicFloat2FeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_atomic_float2 - device extension
 --
--- == VK_EXT_shader_atomic_float2
+-- = VK_EXT_shader_atomic_float2
 --
 -- [__Name String__]
 --     @VK_EXT_shader_atomic_float2@
@@ -18,11 +18,16 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with
+--         VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::sparseImageFloat32AtomicMinMax
+--
 -- [__SPIR-V Dependencies__]
 --
 --     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_atomic_float16_add.html SPV_EXT_shader_atomic_float16_add>
@@ -45,7 +50,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_atomic_float2.txt GLSL_EXT_shader_atomic_float2>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_shader_atomic_float2.txt GLSL_EXT_shader_atomic_float2>
 --
 -- [__Contributors__]
 --
@@ -111,7 +116,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderAtomicFloat2FeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_demote_to_helper_invocation - device extension
 --
--- == VK_EXT_shader_demote_to_helper_invocation
+-- = VK_EXT_shader_demote_to_helper_invocation
 --
 -- [__Name String__]
 --     @VK_EXT_shader_demote_to_helper_invocation@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -50,7 +50,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_demote_to_helper_invocation.txt GL_EXT_demote_to_helper_invocation>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_demote_to_helper_invocation.txt GL_EXT_demote_to_helper_invocation>
 --
 -- [__Contributors__]
 --
@@ -89,13 +89,15 @@
 --
 -- == New SPIR-V Capability
 --
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DemoteToHelperInvocationEXT DemoteToHelperInvocationEXT>
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DemoteToHelperInvocation DemoteToHelperInvocationEXT>
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- EXT suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- EXT suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Version History
 --
@@ -105,7 +107,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_image_atomic_int64 - device extension
 --
--- == VK_EXT_shader_image_atomic_int64
+-- = VK_EXT_shader_image_atomic_int64
 --
 -- [__Name String__]
 --     @VK_EXT_shader_image_atomic_int64@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -45,7 +45,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_image_int64.txt GLSL_EXT_shader_image_int64>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_shader_image_int64.txt GLSL_EXT_shader_image_int64>
 --
 -- [__Contributors__]
 --
@@ -100,7 +100,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderImageAtomicInt64FeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_image_atomic_int64 - device extension
 --
--- == VK_EXT_shader_image_atomic_int64
+-- = VK_EXT_shader_image_atomic_int64
 --
 -- [__Name String__]
 --     @VK_EXT_shader_image_atomic_int64@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -45,7 +45,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_image_int64.txt GLSL_EXT_shader_image_int64>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_shader_image_int64.txt GLSL_EXT_shader_image_int64>
 --
 -- [__Contributors__]
 --
@@ -100,7 +100,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderImageAtomicInt64FeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_module_identifier - device extension
 --
--- == VK_EXT_shader_module_identifier
+-- = VK_EXT_shader_module_identifier
 --
 -- [__Name String__]
 --     @VK_EXT_shader_module_identifier@
@@ -18,12 +18,19 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
+--         
 --     <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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -136,12 +143,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT',
--- 'PhysicalDeviceShaderModuleIdentifierFeaturesEXT',
--- 'PhysicalDeviceShaderModuleIdentifierPropertiesEXT',
--- 'PipelineShaderStageModuleIdentifierCreateInfoEXT',
--- 'ShaderModuleIdentifierEXT', 'getShaderModuleCreateInfoIdentifierEXT',
--- 'getShaderModuleIdentifierEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -463,8 +465,6 @@
 -- structure describe the following:
 --
 -- = Description
---
--- Note
 --
 -- The algorithm UUID may be the same in different ICDs if the algorithms
 -- are guaranteed to produce the same results. This may happen in driver
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_module_identifier - device extension
 --
--- == VK_EXT_shader_module_identifier
+-- = VK_EXT_shader_module_identifier
 --
 -- [__Name String__]
 --     @VK_EXT_shader_module_identifier@
@@ -18,12 +18,19 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
+--         
 --     <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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -136,12 +143,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT',
--- 'PhysicalDeviceShaderModuleIdentifierFeaturesEXT',
--- 'PhysicalDeviceShaderModuleIdentifierPropertiesEXT',
--- 'PipelineShaderStageModuleIdentifierCreateInfoEXT',
--- 'ShaderModuleIdentifierEXT', 'getShaderModuleCreateInfoIdentifierEXT',
--- 'getShaderModuleIdentifierEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_object - device extension
 --
--- == VK_EXT_shader_object
+-- = VK_EXT_shader_object
 --
 -- [__Name String__]
 --     @VK_EXT_shader_object@
@@ -21,17 +21,16 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__API Interactions__]
 --
@@ -43,6 +42,8 @@
 --
 --     -   Interacts with VK_EXT_conservative_rasterization
 --
+--     -   Interacts with VK_EXT_depth_clamp_control
+--
 --     -   Interacts with VK_EXT_depth_clip_control
 --
 --     -   Interacts with VK_EXT_depth_clip_enable
@@ -254,6 +255,12 @@
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
 --
 -- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clamp_control VK_EXT_depth_clamp_control>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--
+-- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_control VK_EXT_depth_clip_control>
 -- is supported:
 --
@@ -389,8 +396,10 @@
 --
 -- -   Extending 'Vulkan.Core10.Enums.Result.Result':
 --
---     -   'Vulkan.Core10.Enums.Result.ERROR_INCOMPATIBLE_SHADER_BINARY_EXT'
+--     -   'ERROR_INCOMPATIBLE_SHADER_BINARY_EXT'
 --
+--     -   'Vulkan.Core10.Enums.Result.INCOMPATIBLE_SHADER_BINARY_EXT'
+--
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT'
@@ -426,7 +435,7 @@
 -- 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>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending 'ShaderCreateFlagBitsEXT':
@@ -438,7 +447,7 @@
 -- 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>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   Extending 'ShaderCreateFlagBitsEXT':
@@ -746,46 +755,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendAdvancedEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT',
--- 'PhysicalDeviceShaderObjectFeaturesEXT',
--- 'PhysicalDeviceShaderObjectPropertiesEXT', 'ShaderCodeTypeEXT',
--- 'ShaderCreateFlagBitsEXT', 'ShaderCreateFlagsEXT',
--- 'ShaderCreateInfoEXT', 'Vulkan.Extensions.Handles.ShaderEXT',
--- 'ShaderRequiredSubgroupSizeCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT',
--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputBindingDescription2EXT',
--- 'cmdBindShadersEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthTestEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT',
--- '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_state.cmdSetViewportWithCountEXT',
--- 'createShadersEXT', 'destroyShaderEXT', 'getShaderBinaryDataEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -800,11 +770,13 @@
                                                , getShaderBinaryDataEXT
                                                , cmdBindShadersEXT
                                                , pattern STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT
+                                               , pattern ERROR_INCOMPATIBLE_SHADER_BINARY_EXT
                                                , PhysicalDeviceShaderObjectFeaturesEXT(..)
                                                , PhysicalDeviceShaderObjectPropertiesEXT(..)
                                                , ShaderCreateInfoEXT(..)
                                                , ShaderCreateFlagsEXT
                                                , ShaderCreateFlagBitsEXT( SHADER_CREATE_LINK_STAGE_BIT_EXT
+                                                                        , SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT
                                                                         , SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
                                                                         , SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT
                                                                         , SHADER_CREATE_DISPATCH_BASE_BIT_EXT
@@ -828,6 +800,7 @@
                                                , ColorBlendAdvancedEXT(..)
                                                , VertexInputBindingDescription2EXT(..)
                                                , VertexInputAttributeDescription2EXT(..)
+                                               , DepthClampRangeEXT(..)
                                                , cmdSetPatchControlPointsEXT
                                                , cmdSetLogicOpEXT
                                                , cmdSetTessellationDomainOriginEXT
@@ -862,6 +835,7 @@
                                                , cmdSetCoverageReductionModeNV
                                                , cmdSetRepresentativeFragmentTestEnableNV
                                                , cmdSetVertexInputEXT
+                                               , cmdSetDepthClampRangeEXT
                                                , ViewportCoordinateSwizzleNV(..)
                                                , BlendOverlapEXT(..)
                                                , CoverageModulationModeNV(..)
@@ -869,6 +843,7 @@
                                                , ConservativeRasterizationModeEXT(..)
                                                , LineRasterizationModeKHR(..)
                                                , ProvokingVertexModeEXT(..)
+                                               , DepthClampModeEXT(..)
                                                , LineRasterizationModeEXT
                                                , cmdSetCullModeEXT
                                                , cmdSetFrontFaceEXT
@@ -1001,7 +976,9 @@
 import Vulkan.Core10.Pipeline (SpecializationInfo)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core10.APIConstants (UUID_SIZE)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_features (ValidationFeaturesEXT)
 import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core10.Enums.Result (Result(INCOMPATIBLE_SHADER_BINARY_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO))
@@ -1025,6 +1002,7 @@
 import Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (cmdSetDepthBiasEnableEXT)
 import Vulkan.Extensions.VK_EXT_extended_dynamic_state (cmdSetDepthBoundsTestEnableEXT)
 import Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (cmdSetDepthClampEnableEXT)
+import Vulkan.Extensions.VK_EXT_depth_clamp_control (cmdSetDepthClampRangeEXT)
 import Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (cmdSetDepthClipEnableEXT)
 import Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (cmdSetDepthClipNegativeOneToOneEXT)
 import Vulkan.Extensions.VK_EXT_extended_dynamic_state (cmdSetDepthCompareOpEXT)
@@ -1062,6 +1040,8 @@
 import Vulkan.Extensions.VK_EXT_conservative_rasterization (ConservativeRasterizationModeEXT(..))
 import Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (CoverageModulationModeNV(..))
 import Vulkan.Extensions.VK_NV_coverage_reduction_mode (CoverageReductionModeNV(..))
+import Vulkan.Extensions.VK_EXT_depth_clamp_control (DepthClampModeEXT(..))
+import Vulkan.Extensions.VK_EXT_depth_clamp_control (DepthClampRangeEXT(..))
 import Vulkan.Extensions.VK_EXT_line_rasterization (LineRasterizationModeEXT)
 import Vulkan.Extensions.VK_KHR_line_rasterization (LineRasterizationModeKHR(..))
 import Vulkan.Extensions.VK_EXT_provoking_vertex (ProvokingVertexModeEXT(..))
@@ -1095,6 +1075,25 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCreateShadersEXT-stage-09670# If the @stage@ member of any
+--     element of @pCreateInfos@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT',
+--     @device@ /must/ support at least one queue family with the
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT' capability
+--
+-- -   #VUID-vkCreateShadersEXT-stage-09671# If the @stage@ member of any
+--     element of @pCreateInfos@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT',
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT',
+--     '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',
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',
+--     @device@ /must/ support at least one queue family with the
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' capability
+--
 -- -   #VUID-vkCreateShadersEXT-None-08400# The
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>
 --     feature /must/ be enabled
@@ -1228,6 +1227,14 @@
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
 --     stage
 --
+-- -   #VUID-vkCreateShadersEXT-pCreateInfos-09632# If @pCreateInfos@
+--     contains a
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     with @codeType@ of 'SHADER_CODE_TYPE_SPIRV_EXT' and
+--     'SHADER_CREATE_NO_TASK_SHADER_BIT_EXT' is not set, then the mesh
+--     shader’s entry point /must/ not declare a variable with a
+--     @DrawIndex@ @BuiltIn@ decoration
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCreateShadersEXT-device-parameter# @device@ /must/ be a
@@ -1254,6 +1261,8 @@
 --
 --     -   'Vulkan.Core10.Enums.Result.SUCCESS'
 --
+--     -   'Vulkan.Core10.Enums.Result.INCOMPATIBLE_SHADER_BINARY_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'
@@ -1262,8 +1271,6 @@
 --
 --     -   'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'
 --
---     -   'Vulkan.Core10.Enums.Result.ERROR_INCOMPATIBLE_SHADER_BINARY_EXT'
---
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
@@ -1281,7 +1288,7 @@
                     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>
                     -- chapter.
                     ("allocator" ::: Maybe AllocationCallbacks)
-                 -> io (("shaders" ::: Vector ShaderEXT))
+                 -> io (Result, ("shaders" ::: Vector ShaderEXT))
 createShadersEXT device createInfos allocator = liftIO . evalContT $ do
   let vkCreateShadersEXTPtr = pVkCreateShadersEXT (case device of Device{deviceCmds} -> deviceCmds)
   lift $ unless (vkCreateShadersEXTPtr /= nullFunPtr) $
@@ -1301,7 +1308,7 @@
                                                        (pPShaders))
   lift $ when (r < SUCCESS) (throwIO (VulkanException r))
   pShaders <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @ShaderEXT ((pPShaders `advancePtrBytes` (8 * (i)) :: Ptr ShaderEXT)))
-  pure $ (pShaders)
+  pure $ (r, pShaders)
 
 -- | A convenience wrapper to make a compatible pair of calls to
 -- 'createShadersEXT' and 'destroyShaderEXT'
@@ -1311,12 +1318,12 @@
 -- favourite resource management library) as the last argument.
 -- To just extract the pair pass '(,)' as the last argument.
 --
-withShadersEXT :: forall io r . MonadIO io => Device -> Vector (SomeStruct ShaderCreateInfoEXT) -> Maybe AllocationCallbacks -> (io (Vector ShaderEXT) -> (Vector ShaderEXT -> io ()) -> r) -> r
+withShadersEXT :: forall io r . MonadIO io => Device -> Vector (SomeStruct ShaderCreateInfoEXT) -> Maybe AllocationCallbacks -> (io (Result, Vector ShaderEXT) -> ((Result, Vector ShaderEXT) -> io ()) -> r) -> r
 withShadersEXT device pCreateInfos pAllocator b =
   b (createShadersEXT device pCreateInfos pAllocator)
-    (\(o0) -> traverse_ (\o0Elem -> destroyShaderEXT device
-                                                       o0Elem
-                                                       pAllocator) o0)
+    (\(_, o1) -> traverse_ (\o1Elem -> destroyShaderEXT device
+                                                          o1Elem
+                                                          pAllocator) o1)
 
 
 foreign import ccall
@@ -1418,20 +1425,19 @@
 --
 -- If @pData@ is @NULL@, then the size of the binary shader code of the
 -- shader object, in bytes, is returned in @pDataSize@. Otherwise,
--- @pDataSize@ /must/ point to a variable set by the user to the size of
--- the buffer, in bytes, pointed to by @pData@, and on return the variable
--- is overwritten with the amount of data actually written to @pData@. If
--- @pDataSize@ is less than the size of the binary shader code, nothing is
--- written to @pData@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be
--- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS'.
---
--- Note
+-- @pDataSize@ /must/ point to a variable set by the application to the
+-- size of the buffer, in bytes, pointed to by @pData@, and on return the
+-- variable is overwritten with the amount of data actually written to
+-- @pData@. If @pDataSize@ is less than the size of the binary shader code,
+-- nothing is written to @pData@, and
+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of
+-- 'Vulkan.Core10.Enums.Result.SUCCESS'.
 --
 -- The behavior of this command when @pDataSize@ is too small differs from
 -- how some other getter-type commands work in Vulkan. Because shader
 -- binary data is only usable in its entirety, it would never be useful for
 -- the implementation to return partial data. Because of this, nothing is
--- written to @pData@ unless @pDataSize@ is large enough to fit the data it
+-- written to @pData@ unless @pDataSize@ is large enough to fit the data in
 -- its entirety.
 --
 -- Binary shader code retrieved using 'getShaderBinaryDataEXT' /can/ be
@@ -1760,6 +1766,10 @@
 pattern STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO
 
 
+-- No documentation found for TopLevel "VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT"
+pattern ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = INCOMPATIBLE_SHADER_BINARY_EXT
+
+
 -- | VkPhysicalDeviceShaderObjectFeaturesEXT - Structure describing whether
 -- shader objects can be supported by an implementation
 --
@@ -1999,6 +2009,15 @@
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-computeFullSubgroups computeFullSubgroups>
 --     feature /must/ be enabled
 --
+-- -   #VUID-VkShaderCreateInfoEXT-flags-11005# If @flags@ includes
+--     'SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT', then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkShaderCreateInfoEXT-flags-11006# If @flags@ includes
+--     'SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT', then the identified entry
+--     point /must/ not specify @Xfb@ execution mode
+--
 -- -   #VUID-VkShaderCreateInfoEXT-flags-08992# If @flags@ includes
 --     'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT', @stage@ /must/ be
 --     one of
@@ -2027,7 +2046,7 @@
 --     'ShaderRequiredSubgroupSizeCreateInfoEXT' structure is included in
 --     the @pNext@ chain, the local workgroup size in the X dimension of
 --     the shader /must/ be a multiple of
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroupSize subgroupSize>
 --
 -- -   #VUID-VkShaderCreateInfoEXT-stage-08418# @stage@ /must/ not be
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_ALL_GRAPHICS'
@@ -2247,14 +2266,31 @@
 --     @pCode@ /must/ contain an @OpExecutionMode@ instruction specifying
 --     the output patch size
 --
+-- -   #VUID-VkShaderCreateInfoEXT-pPushConstantRanges-10063# Any two
+--     elements of @pPushConstantRanges@ /must/ not include the same stage
+--     in @stageFlags@
+--
+-- -   #VUID-VkShaderCreateInfoEXT-codeType-10064# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', and if a push constant block is
+--     declared in a shader, then an element of
+--     @pPushConstantRanges@::@stageFlags@ /must/ match @stage@
+--
+-- -   #VUID-VkShaderCreateInfoEXT-codeType-10065# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', and if a push constant block is
+--     declared in a shader, the block must be contained inside the element
+--     of @pPushConstantRanges@ that matches the stage
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkShaderCreateInfoEXT-sType-sType# @sType@ /must/ be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT'
 --
--- -   #VUID-VkShaderCreateInfoEXT-pNext-pNext# @pNext@ /must/ be @NULL@ or
---     a pointer to a valid instance of
+-- -   #VUID-VkShaderCreateInfoEXT-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_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'
+--     or
+--     'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT'
 --
 -- -   #VUID-VkShaderCreateInfoEXT-sType-unique# The @sType@ value of each
 --     struct in the @pNext@ chain /must/ be unique
@@ -2368,6 +2404,7 @@
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ShaderCreateInfoEXT e => b) -> Maybe b
   extends _ f
     | Just Refl <- eqT @e @PipelineShaderStageRequiredSubgroupSizeCreateInfo = Just f
+    | Just Refl <- eqT @e @ValidationFeaturesEXT = Just f
     | otherwise = Nothing
 
 instance ( Extendss ShaderCreateInfoEXT es
@@ -2507,6 +2544,11 @@
 -- 'SHADER_CREATE_LINK_STAGE_BIT_EXT'.
 pattern SHADER_CREATE_LINK_STAGE_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000001
 
+-- | 'SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT' specifies that the shader
+-- /can/ be used in combination with
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands>.
+pattern SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000080
+
 -- | '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
@@ -2547,6 +2589,10 @@
   [
     ( SHADER_CREATE_LINK_STAGE_BIT_EXT
     , "LINK_STAGE_BIT_EXT"
+    )
+  ,
+    ( SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT
+    , "INDIRECT_BINDABLE_BIT_EXT"
     )
   ,
     ( SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_object - device extension
 --
--- == VK_EXT_shader_object
+-- = VK_EXT_shader_object
 --
 -- [__Name String__]
 --     @VK_EXT_shader_object@
@@ -21,17 +21,16 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__API Interactions__]
 --
@@ -43,6 +42,8 @@
 --
 --     -   Interacts with VK_EXT_conservative_rasterization
 --
+--     -   Interacts with VK_EXT_depth_clamp_control
+--
 --     -   Interacts with VK_EXT_depth_clip_control
 --
 --     -   Interacts with VK_EXT_depth_clip_enable
@@ -254,6 +255,12 @@
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
 --
 -- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clamp_control VK_EXT_depth_clamp_control>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--
+-- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_control VK_EXT_depth_clip_control>
 -- is supported:
 --
@@ -389,8 +396,10 @@
 --
 -- -   Extending 'Vulkan.Core10.Enums.Result.Result':
 --
---     -   'Vulkan.Core10.Enums.Result.ERROR_INCOMPATIBLE_SHADER_BINARY_EXT'
+--     -   'ERROR_INCOMPATIBLE_SHADER_BINARY_EXT'
 --
+--     -   'Vulkan.Core10.Enums.Result.INCOMPATIBLE_SHADER_BINARY_EXT'
+--
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT'
@@ -426,7 +435,7 @@
 -- 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>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending 'ShaderCreateFlagBitsEXT':
@@ -438,7 +447,7 @@
 -- 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>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   Extending 'ShaderCreateFlagBitsEXT':
@@ -746,46 +755,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendAdvancedEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT',
--- 'PhysicalDeviceShaderObjectFeaturesEXT',
--- 'PhysicalDeviceShaderObjectPropertiesEXT', 'ShaderCodeTypeEXT',
--- 'ShaderCreateFlagBitsEXT', 'ShaderCreateFlagsEXT',
--- 'ShaderCreateInfoEXT', 'Vulkan.Extensions.Handles.ShaderEXT',
--- 'ShaderRequiredSubgroupSizeCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT',
--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputBindingDescription2EXT',
--- 'cmdBindShadersEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthTestEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT',
--- '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_state.cmdSetViewportWithCountEXT',
--- 'createShadersEXT', 'destroyShaderEXT', 'getShaderBinaryDataEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_replicated_composites.hs b/src/Vulkan/Extensions/VK_EXT_shader_replicated_composites.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_shader_replicated_composites.hs
@@ -0,0 +1,202 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_shader_replicated_composites - device extension
+--
+-- = VK_EXT_shader_replicated_composites
+--
+-- [__Name String__]
+--     @VK_EXT_shader_replicated_composites@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     565
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_replicated_composites.html SPV_EXT_replicated_composites>
+--
+-- [__Contact__]
+--
+--     -   Kevin Petit
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_shader_replicated_composites] @kpet%0A*Here describe the issue or question you have about the VK_EXT_shader_replicated_composites extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_shader_replicated_composites.adoc VK_EXT_shader_replicated_composites>
+--
+-- [__Last Modified Date__]
+--     2024-02-08
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Kévin Petit, Arm Ltd.
+--
+--     -   Jeff Bolz, NVIDIA
+--
+--     -   Piers Daniell, NVIDIA
+--
+-- This extension adds support for creating composites from a single value
+-- in SPIR-V modules, as defined by SPV_EXT_replicated_composites.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceShaderReplicatedCompositesFeaturesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME'
+--
+-- -   'EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT'
+--
+-- == New SPIR-V Capabilities
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ReplicatedCompositesEXT ReplicatedCompositesEXT>
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-02-08 (Kévin Petit)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_replicated_composites 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_shader_replicated_composites  ( PhysicalDeviceShaderReplicatedCompositesFeaturesEXT(..)
+                                                              , EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION
+                                                              , pattern EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION
+                                                              , EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME
+                                                              , pattern EXT_SHADER_REPLICATED_COMPOSITES_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_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT))
+-- | VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT - Structure
+-- describing whether support for replicated composites in SPIR-V is
+-- enabled
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceShaderReplicatedCompositesFeaturesEXT' 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. 'PhysicalDeviceShaderReplicatedCompositesFeaturesEXT' /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_shader_replicated_composites VK_EXT_shader_replicated_composites>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceShaderReplicatedCompositesFeaturesEXT = PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
+  { -- | #features-shaderReplicatedComposites# @shaderReplicatedComposites@
+    -- specifies whether shader modules /can/ declare the
+    -- @ReplicatedCompositesEXT@ capability.
+    shaderReplicatedComposites :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceShaderReplicatedCompositesFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
+
+instance ToCStruct PhysicalDeviceShaderReplicatedCompositesFeaturesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceShaderReplicatedCompositesFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderReplicatedComposites))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceShaderReplicatedCompositesFeaturesEXT where
+  peekCStruct p = do
+    shaderReplicatedComposites <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
+             (bool32ToBool shaderReplicatedComposites)
+
+instance Storable PhysicalDeviceShaderReplicatedCompositesFeaturesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceShaderReplicatedCompositesFeaturesEXT where
+  zero = PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
+           zero
+
+
+type EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION"
+pattern EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION = 1
+
+
+type EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME = "VK_EXT_shader_replicated_composites"
+
+-- No documentation found for TopLevel "VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME"
+pattern EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME = "VK_EXT_shader_replicated_composites"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_replicated_composites.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_replicated_composites.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_shader_replicated_composites.hs-boot
@@ -0,0 +1,106 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_shader_replicated_composites - device extension
+--
+-- = VK_EXT_shader_replicated_composites
+--
+-- [__Name String__]
+--     @VK_EXT_shader_replicated_composites@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     565
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_replicated_composites.html SPV_EXT_replicated_composites>
+--
+-- [__Contact__]
+--
+--     -   Kevin Petit
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_shader_replicated_composites] @kpet%0A*Here describe the issue or question you have about the VK_EXT_shader_replicated_composites extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_shader_replicated_composites.adoc VK_EXT_shader_replicated_composites>
+--
+-- [__Last Modified Date__]
+--     2024-02-08
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Kévin Petit, Arm Ltd.
+--
+--     -   Jeff Bolz, NVIDIA
+--
+--     -   Piers Daniell, NVIDIA
+--
+-- This extension adds support for creating composites from a single value
+-- in SPIR-V modules, as defined by SPV_EXT_replicated_composites.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceShaderReplicatedCompositesFeaturesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME'
+--
+-- -   'EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT'
+--
+-- == New SPIR-V Capabilities
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ReplicatedCompositesEXT ReplicatedCompositesEXT>
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-02-08 (Kévin Petit)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_replicated_composites 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_shader_replicated_composites  (PhysicalDeviceShaderReplicatedCompositesFeaturesEXT) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
+
+instance ToCStruct PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
+instance Show PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
+
+instance FromCStruct PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_stencil_export - device extension
 --
--- == VK_EXT_shader_stencil_export
+-- = VK_EXT_shader_stencil_export
 --
 -- [__Name String__]
 --     @VK_EXT_shader_stencil_export@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     None
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_subgroup_ballot - device extension
 --
--- == VK_EXT_shader_subgroup_ballot
+-- = VK_EXT_shader_subgroup_ballot
 --
 -- [__Name String__]
 --     @VK_EXT_shader_subgroup_ballot@
@@ -67,9 +67,9 @@
 --
 -- This extension provides the ability for a group of invocations, which
 -- execute in parallel, to do limited forms of cross-invocation
--- communication via a group broadcast of a invocation value, or broadcast
--- of a bitarray representing a predicate value from each invocation in the
--- group.
+-- communication via a group broadcast of an invocation value, or broadcast
+-- of a bit array representing a predicate value from each invocation in
+-- the group.
 --
 -- This extension provides access to a number of additional built-in shader
 -- variables in Vulkan:
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_subgroup_vote - device extension
 --
--- == VK_EXT_shader_subgroup_vote
+-- = VK_EXT_shader_subgroup_vote
 --
 -- [__Name String__]
 --     @VK_EXT_shader_subgroup_vote@
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_tile_image - device extension
 --
--- == VK_EXT_shader_tile_image
+-- = VK_EXT_shader_tile_image
 --
 -- [__Name String__]
 --     @VK_EXT_shader_tile_image@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Version 1.3>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -46,7 +46,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://raw.githubusercontent.com/KhronosGroup/GLSL/master/extensions/ext/GLSL_EXT_shader_tile_image.txt GL_EXT_shader_tile_image>
+--         <https://raw.githubusercontent.com/KhronosGroup/GLSL/main/extensions/ext/GLSL_EXT_shader_tile_image.txt GL_EXT_shader_tile_image>
 --
 -- [__Contributors__]
 --
@@ -147,8 +147,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderTileImageFeaturesEXT',
--- 'PhysicalDeviceShaderTileImagePropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_tile_image - device extension
 --
--- == VK_EXT_shader_tile_image
+-- = VK_EXT_shader_tile_image
 --
 -- [__Name String__]
 --     @VK_EXT_shader_tile_image@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Version 1.3>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -46,7 +46,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://raw.githubusercontent.com/KhronosGroup/GLSL/master/extensions/ext/GLSL_EXT_shader_tile_image.txt GL_EXT_shader_tile_image>
+--         <https://raw.githubusercontent.com/KhronosGroup/GLSL/main/extensions/ext/GLSL_EXT_shader_tile_image.txt GL_EXT_shader_tile_image>
 --
 -- [__Contributors__]
 --
@@ -147,8 +147,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderTileImageFeaturesEXT',
--- 'PhysicalDeviceShaderTileImagePropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_shader_viewport_index_layer - device extension
 --
--- == VK_EXT_shader_viewport_index_layer
+-- = VK_EXT_shader_viewport_index_layer
 --
 -- [__Name String__]
 --     @VK_EXT_shader_viewport_index_layer@
@@ -51,9 +51,13 @@
 --         and
 --         <https://registry.khronos.org/OpenGL/extensions/NV/NV_viewport_array2.txt GL_NV_viewport_array2>
 --
---     -   This extension requires the @multiViewport@ feature.
+--     -   This extension requires the
+--         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
+--         feature.
 --
---     -   This extension interacts with the @tessellationShader@ feature.
+--     -   This extension interacts with the
+--         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--         feature.
 --
 -- [__Contributors__]
 --
@@ -79,13 +83,11 @@
 --
 -- When using GLSL source-based shading languages, the @gl_ViewportIndex@
 -- and @gl_Layer@ built-in variables map to the SPIR-V @ViewportIndex@ and
--- @Layer@ built-in decorations, respectively. Behaviour of these variables
+-- @Layer@ built-in decorations, respectively. Behavior of these variables
 -- is extended as described in the @GL_ARB_shader_viewport_layer_array@ (or
 -- the precursor @GL_AMD_vertex_shader_layer@,
 -- @GL_AMD_vertex_shader_viewport_index@, and @GL_NV_viewport_array2@
 -- extensions).
---
--- Note
 --
 -- The @ShaderViewportIndexLayerEXT@ capability is equivalent to the
 -- @ShaderViewportIndexLayerNV@ capability added by
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_subgroup_size_control - device extension
 --
--- == VK_EXT_subgroup_size_control
+-- = VK_EXT_subgroup_size_control
 --
 -- [__Name String__]
 --     @VK_EXT_subgroup_size_control@
@@ -21,7 +21,7 @@
 --     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -147,9 +147,11 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- EXT suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- EXT suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Version History
 --
@@ -164,9 +166,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceSubgroupSizeControlFeaturesEXT',
--- 'PhysicalDeviceSubgroupSizeControlPropertiesEXT',
--- 'PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_subpass_merge_feedback - device extension
 --
--- == VK_EXT_subpass_merge_feedback
+-- = VK_EXT_subpass_merge_feedback
 --
 -- [__Name String__]
 --     @VK_EXT_subpass_merge_feedback@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -114,12 +116,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceSubpassMergeFeedbackFeaturesEXT',
--- 'RenderPassCreationControlEXT',
--- 'RenderPassCreationFeedbackCreateInfoEXT',
--- 'RenderPassCreationFeedbackInfoEXT',
--- 'RenderPassSubpassFeedbackCreateInfoEXT',
--- 'RenderPassSubpassFeedbackInfoEXT', 'SubpassMergeStatusEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -379,8 +376,8 @@
 -- 'RenderPassSubpassFeedbackCreateInfoEXT', 'SubpassMergeStatusEXT'
 data RenderPassSubpassFeedbackInfoEXT = RenderPassSubpassFeedbackInfoEXT
   { -- | @subpassMergeStatus@ is a 'SubpassMergeStatusEXT' value specifying
-    -- information about whether the subpass is merged with previous subpass
-    -- and the reason why it is not merged.
+    -- information about whether the subpass is merged with the previous
+    -- subpass and the reason why it is not merged.
     subpassMergeStatus :: SubpassMergeStatusEXT
   , -- | @description@ is an array of
     -- 'Vulkan.Core10.APIConstants.MAX_DESCRIPTION_SIZE' @char@ containing a
@@ -567,69 +564,72 @@
 newtype SubpassMergeStatusEXT = SubpassMergeStatusEXT Int32
   deriving newtype (Eq, Ord, Storable, Zero)
 
--- | 'SUBPASS_MERGE_STATUS_MERGED_EXT' specifies the subpass is merged with a
--- previous subpass.
+-- | 'SUBPASS_MERGE_STATUS_MERGED_EXT' specifies that the subpass is merged
+-- with a previous subpass.
 pattern SUBPASS_MERGE_STATUS_MERGED_EXT = SubpassMergeStatusEXT 0
 
--- | 'SUBPASS_MERGE_STATUS_DISALLOWED_EXT' specifies the subpass is
--- disallowed to merge with previous subpass. If the render pass does not
--- allow subpass merging, then all subpass statuses are set to this value.
--- If a subpass description does not allow subpass merging, then only that
+-- | 'SUBPASS_MERGE_STATUS_DISALLOWED_EXT' specifies that the subpass is not
+-- merged because merging was disabled using
+-- 'RenderPassCreationControlEXT'. If the render pass does not allow
+-- subpass merging, then all subpass statuses are set to this value. If a
+-- subpass description does not allow subpass merging, then only that
 -- subpass’s status is set to this value.
 pattern SUBPASS_MERGE_STATUS_DISALLOWED_EXT = SubpassMergeStatusEXT 1
 
--- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT' specifies the subpass
--- is not merged because it contains side effects.
+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT' specifies that the
+-- subpass is not merged because it contains side effects.
 pattern SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = SubpassMergeStatusEXT 2
 
--- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT' specifies the
--- subpass is not merged because sample count is not compatible with
--- previous subpass.
+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT' specifies that
+-- the subpass is not merged because sample count is not compatible with
+-- the previous subpass.
 pattern SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = SubpassMergeStatusEXT 3
 
--- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT' specifies the
+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT' specifies that the
 -- subpass is not merged because view masks do not match with previous
 -- subpass.
 pattern SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = SubpassMergeStatusEXT 4
 
--- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT' specifies the subpass is
--- not merged because of attachments aliasing between them.
+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT' specifies that the
+-- subpass is not merged because of attachments aliasing between them.
 pattern SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = SubpassMergeStatusEXT 5
 
--- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT' specifies the subpass
--- is not merged because subpass dependencies do not allow merging.
+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT' specifies that the
+-- subpass is not merged because subpass dependencies do not allow merging.
 pattern SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = SubpassMergeStatusEXT 6
 
 -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT'
--- specifies the subpass is not merged because input attachment is not a
--- color attachment from previous subpass or the formats are incompatible.
+-- specifies that the subpass is not merged because input attachment is not
+-- a color attachment from previous subpass or the formats are
+-- incompatible.
 pattern SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = SubpassMergeStatusEXT 7
 
--- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT' specifies the
--- subpass is not merged because of too many attachments.
+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT' specifies
+-- that the subpass is not merged because of too many attachments.
 pattern SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = SubpassMergeStatusEXT 8
 
--- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT' specifies the
--- subpass is not merged because of insufficient memory.
+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT' specifies
+-- that the subpass is not merged because of insufficient memory.
 pattern SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = SubpassMergeStatusEXT 9
 
--- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT' specifies the
--- subpass is not merged because of too many depth\/stencil attachments.
+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT' specifies that
+-- the subpass is not merged because of too many depth\/stencil
+-- attachments.
 pattern SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = SubpassMergeStatusEXT 10
 
 -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT' specifies
--- the subpass is not merged because a resolve attachment is reused as an
--- input attachment in a subsequent subpass.
+-- that the subpass is not merged because a resolve attachment is reused as
+-- an input attachment in a subsequent subpass.
 pattern SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = SubpassMergeStatusEXT 11
 
--- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT' specifies the
+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT' specifies that the
 -- subpass is not merged because the render pass has only one subpass.
 pattern SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = SubpassMergeStatusEXT 12
 
--- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT' specifies other
--- reasons why subpass is not merged. It is also the recommended default
--- value that should be reported when a subpass is not merged and when no
--- other value is appropriate.
+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT' specifies that the
+-- subpass is not merged for unspecified reasons. Implementations /should/
+-- return this value when no other 'SubpassMergeStatusEXT' value is
+-- appropriate.
 pattern SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = SubpassMergeStatusEXT 13
 
 {-# COMPLETE
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_subpass_merge_feedback - device extension
 --
--- == VK_EXT_subpass_merge_feedback
+-- = VK_EXT_subpass_merge_feedback
 --
 -- [__Name String__]
 --     @VK_EXT_subpass_merge_feedback@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -114,12 +116,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceSubpassMergeFeedbackFeaturesEXT',
--- 'RenderPassCreationControlEXT',
--- 'RenderPassCreationFeedbackCreateInfoEXT',
--- 'RenderPassCreationFeedbackInfoEXT',
--- 'RenderPassSubpassFeedbackCreateInfoEXT',
--- 'RenderPassSubpassFeedbackInfoEXT', 'SubpassMergeStatusEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_surface_maintenance1 - instance extension
 --
--- == VK_EXT_surface_maintenance1
+-- = VK_EXT_surface_maintenance1
 --
 -- [__Name String__]
 --     @VK_EXT_surface_maintenance1@
@@ -122,10 +122,7 @@
 --
 -- == See Also
 --
--- 'PresentGravityFlagBitsEXT', 'PresentGravityFlagsEXT',
--- 'PresentScalingFlagBitsEXT', 'PresentScalingFlagsEXT',
--- 'SurfacePresentModeCompatibilityEXT', 'SurfacePresentModeEXT',
--- 'SurfacePresentScalingCapabilitiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -211,8 +208,6 @@
 -- mode image counts /may/ be less-than or greater-than the image counts
 -- returned when 'SurfacePresentModeEXT' is not provided.
 --
--- Note
---
 -- If
 -- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT'
 -- is provided to swapchain creation, the requirements for forward progress
@@ -247,7 +242,7 @@
     -- #VUID-VkSurfacePresentModeEXT-presentMode-07780# @presentMode@ /must/ be
     -- a value reported by
     -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfacePresentModesKHR'
-    -- for the specified surface.
+    -- for the specified surface
     --
     -- #VUID-VkSurfacePresentModeEXT-presentMode-parameter# @presentMode@
     -- /must/ be a valid 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR'
@@ -320,26 +315,14 @@
   { -- | @supportedPresentScaling@ is a bitmask of 'PresentScalingFlagBitsEXT'
     -- representing the scaling methods supported by the surface, or @0@ if
     -- application-defined scaling is not supported.
-    --
-    -- #VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentScaling-parameter#
-    -- @supportedPresentScaling@ /must/ be a valid combination of
-    -- 'PresentScalingFlagBitsEXT' values
     supportedPresentScaling :: PresentScalingFlagsEXT
   , -- | @supportedPresentGravityX@ is a bitmask of 'PresentGravityFlagBitsEXT'
     -- representing the X-axis pixel gravity supported by the surface, or @0@
     -- if Vulkan-defined pixel gravity is not supported for the X axis.
-    --
-    -- #VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityX-parameter#
-    -- @supportedPresentGravityX@ /must/ be a valid combination of
-    -- 'PresentGravityFlagBitsEXT' values
     supportedPresentGravityX :: PresentGravityFlagsEXT
   , -- | @supportedPresentGravityY@ is a bitmask of 'PresentGravityFlagBitsEXT'
     -- representing the Y-axis pixel gravity supported by the surface, or @0@
     -- if Vulkan-defined pixel gravity is not supported for the Y axis.
-    --
-    -- #VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityY-parameter#
-    -- @supportedPresentGravityY@ /must/ be a valid combination of
-    -- 'PresentGravityFlagBitsEXT' values
     supportedPresentGravityY :: PresentGravityFlagsEXT
   , -- | @minScaledImageExtent@ contains the smallest valid swapchain extent for
     -- the surface on the specified device when one of the scaling methods
@@ -420,15 +403,15 @@
 --
 -- If @pPresentModes@ is @NULL@, then the number of present modes that are
 -- compatible with the one specified in 'SurfacePresentModeEXT' is 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 compatible present modes that are supported, at most
--- @presentModeCount@ values will be written to @pPresentModes@. The
--- implementation /must/ include the present mode passed to
--- 'SurfacePresentModeEXT' in @pPresentModes@, unless @presentModeCount@ is
--- zero.
+-- in @presentModeCount@. Otherwise, @presentModeCount@ /must/ point to a
+-- variable set by the application 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 compatible present
+-- modes that are supported, at most @presentModeCount@ values will be
+-- written to @pPresentModes@. The implementation /must/ include the
+-- present mode passed to 'SurfacePresentModeEXT' in @pPresentModes@,
+-- unless @presentModeCount@ is zero.
 --
 -- Before creating a swapchain whose present modes /can/ be modified
 -- through the use of
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_surface_maintenance1 - instance extension
 --
--- == VK_EXT_surface_maintenance1
+-- = VK_EXT_surface_maintenance1
 --
 -- [__Name String__]
 --     @VK_EXT_surface_maintenance1@
@@ -122,10 +122,7 @@
 --
 -- == See Also
 --
--- 'PresentGravityFlagBitsEXT', 'PresentGravityFlagsEXT',
--- 'PresentScalingFlagBitsEXT', 'PresentScalingFlagsEXT',
--- 'SurfacePresentModeCompatibilityEXT', 'SurfacePresentModeEXT',
--- 'SurfacePresentScalingCapabilitiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_swapchain_colorspace - instance extension
 --
--- == VK_EXT_swapchain_colorspace
+-- = VK_EXT_swapchain_colorspace
 --
 -- [__Name String__]
 --     @VK_EXT_swapchain_colorspace@
@@ -15,10 +15,10 @@
 --     105
 --
 -- [__Revision__]
---     4
+--     5
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
@@ -94,7 +94,7 @@
 -- the color spaces?
 --
 -- __RESOLVED__: Pixel format is independent of color space (though some
--- color spaces really want \/ need floating point color components to be
+-- color spaces really want \/ need floating-point color components to be
 -- useful). Therefore, do not plan on documenting what formats support
 -- which color spaces. An application /can/ call
 -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceFormatsKHR' to
@@ -132,6 +132,13 @@
 --
 --     -   Clarify DCI-P3 and Display P3 usage.
 --
+-- -   Revision 5, 2024-03-16 (Zehui Lin)
+--
+--     -   Fix interchanged concepts of EOTF and OETF.
+--
+--     -   Clarify that the presentation engine can accept the color
+--         spaces.
+--
 -- == See Also
 --
 -- No cross-references are available
@@ -158,11 +165,11 @@
 pattern COLOR_SPACE_DCI_P3_LINEAR_EXT = COLOR_SPACE_DISPLAY_P3_LINEAR_EXT
 
 
-type EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION = 4
+type EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION = 5
 
 -- No documentation found for TopLevel "VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION"
 pattern EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION :: forall a . Integral a => a
-pattern EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION = 4
+pattern EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION = 5
 
 
 type EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME = "VK_EXT_swapchain_colorspace"
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_swapchain_maintenance1 - device extension
 --
--- == VK_EXT_swapchain_maintenance1
+-- = VK_EXT_swapchain_maintenance1
 --
 -- [__Name String__]
 --     @VK_EXT_swapchain_maintenance1@
@@ -25,7 +25,11 @@
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_surface_maintenance1 VK_EXT_surface_maintenance1>
 --     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>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -166,10 +170,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceSwapchainMaintenance1FeaturesEXT',
--- 'ReleaseSwapchainImagesInfoEXT', 'SwapchainPresentFenceInfoEXT',
--- 'SwapchainPresentModeInfoEXT', 'SwapchainPresentModesCreateInfoEXT',
--- 'SwapchainPresentScalingCreateInfoEXT', 'releaseSwapchainImagesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -289,11 +290,25 @@
 -- platform window associated with the swapchain, the content of all
 -- presentable images in the swapchain becomes undefined.
 --
--- Note
---
 -- This functionality is useful during swapchain recreation, where acquired
 -- images from the old swapchain can be released instead of presented.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkReleaseSwapchainImagesEXT-swapchainMaintenance1-10159#
+--     Feature
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-swapchainMaintenance1 swapchainMaintenance1>
+--     /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkReleaseSwapchainImagesEXT-device-parameter# @device@ /must/
+--     be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkReleaseSwapchainImagesEXT-pReleaseInfo-parameter#
+--     @pReleaseInfo@ /must/ be a valid pointer to a valid
+--     'ReleaseSwapchainImagesInfoEXT' structure
+--
 -- == Return Codes
 --
 -- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
@@ -312,16 +327,9 @@
                            . (MonadIO io)
                           => -- | @device@ is the device associated with
                              -- 'ReleaseSwapchainImagesInfoEXT'::@swapchain@.
-                             --
-                             -- #VUID-vkReleaseSwapchainImagesEXT-device-parameter# @device@ /must/ be a
-                             -- valid 'Vulkan.Core10.Handles.Device' handle
                              Device
                           -> -- | @pReleaseInfo@ is a pointer to a 'ReleaseSwapchainImagesInfoEXT'
                              -- structure containing parameters of the release.
-                             --
-                             -- #VUID-vkReleaseSwapchainImagesEXT-pReleaseInfo-parameter# @pReleaseInfo@
-                             -- /must/ be a valid pointer to a valid 'ReleaseSwapchainImagesInfoEXT'
-                             -- structure
                              ("releaseInfo" ::: ReleaseSwapchainImagesInfoEXT)
                           -> io ()
 releaseSwapchainImagesEXT device releaseInfo = liftIO . evalContT $ do
@@ -470,11 +478,13 @@
 --     'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR'::@swapchainCount@
 --
 -- -   #VUID-VkSwapchainPresentFenceInfoEXT-pFences-07758# Each element of
---     @pFences@ /must/ be unsignaled
+--     @pFences@ that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--     /must/ be unsignaled
 --
 -- -   #VUID-VkSwapchainPresentFenceInfoEXT-pFences-07759# Each element of
---     @pFences@ /must/ not be associated with any other queue command that
---     has not yet completed execution on that queue
+--     @pFences@ that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--     /must/ not be associated with any other queue command that has not
+--     yet completed execution on that queue
 --
 -- == Valid Usage (Implicit)
 --
@@ -482,7 +492,8 @@
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT'
 --
 -- -   #VUID-VkSwapchainPresentFenceInfoEXT-pFences-parameter# @pFences@
---     /must/ be a valid pointer to an array of @swapchainCount@ valid
+--     /must/ be a valid pointer to an array of @swapchainCount@ valid or
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
 --     'Vulkan.Core10.Handles.Fence' handles
 --
 -- -   #VUID-VkSwapchainPresentFenceInfoEXT-swapchainCount-arraylength#
@@ -546,6 +557,12 @@
 --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfacePresentModesKHR'
 --     for the surface
 --
+-- -   #VUID-VkSwapchainPresentModesCreateInfoEXT-presentModeFifoLatestReady-10160#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentModeFifoLatestReady presentModeFifoLatestReady>
+--     feature is not enabled, pPresentModes /must/ not contain
+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_LATEST_READY_EXT'
+--
 -- -   #VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-07763# The
 --     entries in pPresentModes /must/ be a subset of the present modes
 --     returned in
@@ -664,8 +681,9 @@
 -- -   Transition from
 --     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_IMMEDIATE_KHR' to
 --     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_KHR' or
---     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_RELAXED_KHR': As
---     all prior present requests in the
+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_RELAXED_KHR' or
+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_LATEST_READY_EXT'
+--     : As all prior present requests in the
 --     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_IMMEDIATE_KHR' mode
 --     are applied immediately, there are no outstanding present operations
 --     in this mode, and current and subsequent images are appended to the
@@ -674,8 +692,9 @@
 -- -   Transition from
 --     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR' to
 --     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_KHR' or
---     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_RELAXED_KHR':
---     Presentation in both modes require waiting for the next vertical
+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_RELAXED_KHR' or
+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_LATEST_READY_EXT'
+--     : Presentation in FIFO modes require waiting for the next vertical
 --     blanking period, with
 --     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR' allowing
 --     the pending present operation to be replaced by a new one. In this
@@ -684,8 +703,9 @@
 --
 -- -   Transition from
 --     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_KHR' or
---     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_RELAXED_KHR' to
---     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_IMMEDIATE_KHR' or
+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_RELAXED_KHR' or
+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_LATEST_READY_EXT'
+--     to 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_IMMEDIATE_KHR' or
 --     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR': If the
 --     FIFO queue is empty, presentation is done according to the behavior
 --     of the new mode. If there are present operations in the FIFO queue,
@@ -693,6 +713,16 @@
 --     vertical blanking period, the current and subsequent updates are
 --     applied according to the new mode.
 --
+-- -   Transition between
+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_KHR' or
+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_RELAXED_KHR',
+--     and
+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_LATEST_READY_EXT':
+--     Images continue to be appended to the same FIFO queue, and the
+--     behavior with respect to waiting for vertical blanking period and
+--     dequeuing requests will follow the new mode for current and
+--     subsequent images.
+--
 -- -   The behavior during transition between any other present modes, if
 --     possible, is implementation defined.
 --
@@ -703,7 +733,7 @@
 --     'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR'::@swapchainCount@
 --
 -- -   #VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-07761# Each entry
---     in @pPresentModes@ must be a presentation mode specified in
+--     in @pPresentModes@ /must/ be a presentation mode specified in
 --     'SwapchainPresentModesCreateInfoEXT'::@pPresentModes@ when creating
 --     the entry’s corresponding swapchain
 --
@@ -795,8 +825,8 @@
 --     @presentGravityY@ /must/ not have more than one bit set
 --
 -- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07770#
---     @scalingBehavior@ /must/ be a valid scaling method for the surface
---     as returned in
+--     @scalingBehavior@ /must/ be @0@ or a valid scaling method for the
+--     surface as returned in
 --     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'::@supportedPresentScaling@,
 --     given
 --     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'::@presentMode@
@@ -805,16 +835,16 @@
 --
 -- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07771#
 --     If the swapchain is created with
---     'SwapchainPresentModesCreateInfoEXT', @scalingBehavior@ /must/ be a
---     valid scaling method for the surface as returned in
+--     'SwapchainPresentModesCreateInfoEXT', @scalingBehavior@ /must/ be
+--     @0@ or a valid scaling method for the surface as returned in
 --     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'::@supportedPresentScaling@,
 --     given each present mode in
 --     'SwapchainPresentModesCreateInfoEXT'::@pPresentModes@ in
 --     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT'
 --
 -- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07772#
---     @presentGravityX@ /must/ be a valid x-axis present gravity for the
---     surface as returned in
+--     @presentGravityX@ /must/ be @0@ or a valid x-axis present gravity
+--     for the surface as returned in
 --     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'::@supportedPresentGravityX@,
 --     given
 --     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'::@presentMode@
@@ -823,16 +853,16 @@
 --
 -- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07773#
 --     If the swapchain is created with
---     'SwapchainPresentModesCreateInfoEXT', @presentGravityX@ /must/ be a
---     valid x-axis present gravity for the surface as returned in
+--     'SwapchainPresentModesCreateInfoEXT', @presentGravityX@ /must/ be
+--     @0@ or a valid x-axis present gravity for the surface as returned in
 --     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'::@supportedPresentGravityX@,
 --     given each present mode in
 --     'SwapchainPresentModesCreateInfoEXT'::@pPresentModes@ in
 --     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT'
 --
 -- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07774#
---     @presentGravityY@ /must/ be a valid y-axis present gravity for the
---     surface as returned in
+--     @presentGravityY@ /must/ be @0@ or a valid y-axis present gravity
+--     for the surface as returned in
 --     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'::@supportedPresentGravityY@,
 --     given
 --     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'::@presentMode@
@@ -841,12 +871,18 @@
 --
 -- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07775#
 --     If the swapchain is created with
---     'SwapchainPresentModesCreateInfoEXT', @presentGravityY@ /must/ be a
---     valid y-axis present gravity for the surface as returned in
+--     'SwapchainPresentModesCreateInfoEXT', @presentGravityY@ /must/ be
+--     @0@ or a valid y-axis present gravity for the surface as returned in
 --     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT'::@supportedPresentGravityY@,
 --     given each present mode in
 --     'SwapchainPresentModesCreateInfoEXT'::@pPresentModes@ in
 --     'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT'
+--
+-- -   #VUID-VkSwapchainPresentScalingCreateInfoEXT-swapchainMaintenance1-10154#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-swapchainMaintenance1 swapchainMaintenance1>
+--     feature is not enabled, then @presentScaling@, @presentGravityX@,
+--     and @presentGravityY@ /must/ be @0@
 --
 -- == 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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_swapchain_maintenance1 - device extension
 --
--- == VK_EXT_swapchain_maintenance1
+-- = VK_EXT_swapchain_maintenance1
 --
 -- [__Name String__]
 --     @VK_EXT_swapchain_maintenance1@
@@ -25,7 +25,11 @@
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_surface_maintenance1 VK_EXT_surface_maintenance1>
 --     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>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -166,10 +170,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceSwapchainMaintenance1FeaturesEXT',
--- 'ReleaseSwapchainImagesInfoEXT', 'SwapchainPresentFenceInfoEXT',
--- 'SwapchainPresentModeInfoEXT', 'SwapchainPresentModesCreateInfoEXT',
--- 'SwapchainPresentScalingCreateInfoEXT', 'releaseSwapchainImagesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_texel_buffer_alignment - device extension
 --
--- == VK_EXT_texel_buffer_alignment
+-- = VK_EXT_texel_buffer_alignment
 --
 -- [__Name String__]
 --     @VK_EXT_texel_buffer_alignment@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -81,11 +81,13 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
 -- EXT suffix omitted. However, only the properties structure is promoted.
 -- The feature structure is not promoted and @texelBufferAlignment@ is
--- enabled if using a Vulkan 1.3 instance. The original type name is still
--- available as an alias of the core functionality.
+-- enabled if using a Vulkan 1.3 instance. External interactions defined by
+-- this extension, such as SPIR-V token names, retain their original names.
+-- The original Vulkan API name is still available as an alias of the core
+-- functionality.
 --
 -- == Version History
 --
@@ -95,8 +97,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceTexelBufferAlignmentFeaturesEXT',
--- 'PhysicalDeviceTexelBufferAlignmentPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_texel_buffer_alignment - device extension
 --
--- == VK_EXT_texel_buffer_alignment
+-- = VK_EXT_texel_buffer_alignment
 --
 -- [__Name String__]
 --     @VK_EXT_texel_buffer_alignment@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -81,11 +81,13 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
 -- EXT suffix omitted. However, only the properties structure is promoted.
 -- The feature structure is not promoted and @texelBufferAlignment@ is
--- enabled if using a Vulkan 1.3 instance. The original type name is still
--- available as an alias of the core functionality.
+-- enabled if using a Vulkan 1.3 instance. External interactions defined by
+-- this extension, such as SPIR-V token names, retain their original names.
+-- The original Vulkan API name is still available as an alias of the core
+-- functionality.
 --
 -- == Version History
 --
@@ -95,8 +97,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceTexelBufferAlignmentFeaturesEXT',
--- 'PhysicalDeviceTexelBufferAlignmentPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_texture_compression_astc_hdr - device extension
 --
--- == VK_EXT_texture_compression_astc_hdr
+-- = VK_EXT_texture_compression_astc_hdr
 --
 -- [__Name String__]
 --     @VK_EXT_texture_compression_astc_hdr@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -106,11 +106,12 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- This extension has been partially promoted. Functionality in this
--- extension is included in core Vulkan 1.3, with the EXT suffix omitted.
--- However, the feature is made optional in Vulkan 1.3. The original type,
--- enum and command names are still available as aliases of the core
--- functionality.
+-- This extension has been partially promoted. Vulkan APIs in this
+-- extension are included in core Vulkan 1.3, with the EXT suffix omitted.
+-- However, the feature is made optional in Vulkan 1.3. External
+-- interactions defined by this extension, such as SPIR-V token names,
+-- retain their original names. The original Vulkan API names are still
+-- available as aliases of the core functionality.
 --
 -- == Issues
 --
@@ -146,7 +147,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_tooling_info - device extension
 --
--- == VK_EXT_tooling_info
+-- = VK_EXT_tooling_info
 --
 -- [__Name String__]
 --     @VK_EXT_tooling_info@
@@ -135,9 +135,11 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- EXT suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- EXT suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Examples
 --
@@ -181,8 +183,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceToolPropertiesEXT', 'ToolPurposeFlagBitsEXT',
--- 'ToolPurposeFlagsEXT', 'getPhysicalDeviceToolPropertiesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,5621 +3,5583 @@
 --
 -- VK_EXT_transform_feedback - device extension
 --
--- == VK_EXT_transform_feedback
---
--- [__Name String__]
---     @VK_EXT_transform_feedback@
---
--- [__Extension Type__]
---     Device extension
---
--- [__Registered Extension Number__]
---     29
---
--- [__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>
---
--- [__Special Uses__]
---
---     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>
---
---     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>
---
---     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>
---
--- [__Contact__]
---
---     -   Piers Daniell
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_transform_feedback] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_EXT_transform_feedback extension* >
---
--- == Other Extension Metadata
---
--- [__Last Modified Date__]
---     2018-10-09
---
--- [__Contributors__]
---
---     -   Baldur Karlsson, Valve
---
---     -   Boris Zanin, Mobica
---
---     -   Daniel Rakos, AMD
---
---     -   Donald Scorgie, Imagination
---
---     -   Henri Verbeet, CodeWeavers
---
---     -   Jan-Harald Fredriksen, Arm
---
---     -   Faith Ekstrand, Intel
---
---     -   Jeff Bolz, NVIDIA
---
---     -   Jesse Barker, Unity
---
---     -   Jesse Hall, Google
---
---     -   Pierre-Loup Griffais, Valve
---
---     -   Philip Rebohle, DXVK
---
---     -   Ruihao Zhang, Qualcomm
---
---     -   Samuel Pitoiset, Valve
---
---     -   Slawomir Grajewski, Intel
---
---     -   Stu Smith, Imagination Technologies
---
--- == Description
---
--- This extension adds transform feedback to the Vulkan API by exposing the
--- SPIR-V @TransformFeedback@ and @GeometryStreams@ capabilities to capture
--- vertex, tessellation or geometry shader outputs to one or more buffers.
--- It adds API functionality to bind transform feedback buffers to capture
--- the primitives emitted by the graphics pipeline from SPIR-V outputs
--- decorated for transform feedback. The transform feedback capture can be
--- paused and resumed by way of storing and retrieving a byte counter. The
--- captured data can be drawn again where the vertex count is derived from
--- the byte counter without CPU intervention. If the implementation is
--- capable, a vertex stream other than zero can be rasterized.
---
--- All these features are designed to match the full capabilities of OpenGL
--- core transform feedback functionality and beyond. Many of the features
--- are optional to allow base OpenGL ES GPUs to also implement this
--- extension.
---
--- The primary purpose of the functionality exposed by this extension is to
--- support translation layers from other 3D APIs. This functionality is not
--- considered forward looking, and is not expected to be promoted to a KHR
--- extension or to core Vulkan. Unless this is needed for translation, it
--- is recommended that developers use alternative techniques of using the
--- GPU to process and capture vertex data.
---
--- == New Commands
---
--- -   'cmdBeginQueryIndexedEXT'
---
--- -   'cmdBeginTransformFeedbackEXT'
---
--- -   'cmdBindTransformFeedbackBuffersEXT'
---
--- -   'cmdDrawIndirectByteCountEXT'
---
--- -   'cmdEndQueryIndexedEXT'
---
--- -   'cmdEndTransformFeedbackEXT'
---
--- == New Structures
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
---     'Vulkan.Core10.Device.DeviceCreateInfo':
---
---     -   'PhysicalDeviceTransformFeedbackFeaturesEXT'
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
---
---     -   'PhysicalDeviceTransformFeedbackPropertiesEXT'
---
--- -   Extending
---     'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo':
---
---     -   'PipelineRasterizationStateStreamCreateInfoEXT'
---
--- == New Bitmasks
---
--- -   'PipelineRasterizationStateStreamCreateFlagsEXT'
---
--- == New Enum Constants
---
--- -   'EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME'
---
--- -   'EXT_TRANSFORM_FEEDBACK_SPEC_VERSION'
---
--- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':
---
---     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'
---
---     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'
---
---     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'
---
--- -   Extending
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits':
---
---     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT'
---
---     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'
---
--- -   Extending
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':
---
---     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
---
--- -   Extending 'Vulkan.Core10.Enums.QueryType.QueryType':
---
---     -   'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT'
---
--- == Issues
---
--- 1) Should we include pause\/resume functionality?
---
--- __RESOLVED__: Yes, this is needed to ease layering other APIs which have
--- this functionality. To pause use 'cmdEndTransformFeedbackEXT' and
--- provide valid buffer handles in the @pCounterBuffers@ array and offsets
--- in the @pCounterBufferOffsets@ array for the implementation to save the
--- resume points. Then to resume use 'cmdBeginTransformFeedbackEXT' with
--- the previous @pCounterBuffers@ and @pCounterBufferOffsets@ values.
--- Between the pause and resume there needs to be a memory barrier for the
--- counter buffers with a source access of
--- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'
--- at pipeline stage
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
--- to a destination access of
--- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'
--- at pipeline stage
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'.
---
--- 2) How does this interact with multiview?
---
--- __RESOLVED__: Transform feedback cannot be made active in a render pass
--- with multiview enabled.
---
--- 3) How should queries be done?
---
--- __RESOLVED__: There is a new query type
--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'.
--- A query pool created with this type will capture 2 integers -
--- numPrimitivesWritten and numPrimitivesNeeded - for the specified vertex
--- stream 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 vertex stream output queried is zero by default, but can be
--- specified with the new 'cmdBeginQueryIndexedEXT' and
--- 'cmdEndQueryIndexedEXT' commands.
---
--- == Version History
---
--- -   Revision 1, 2018-10-09 (Piers Daniell)
---
---     -   Internal revisions
---
--- == See Also
---
--- 'PhysicalDeviceTransformFeedbackFeaturesEXT',
--- 'PhysicalDeviceTransformFeedbackPropertiesEXT',
--- 'PipelineRasterizationStateStreamCreateFlagsEXT',
--- 'PipelineRasterizationStateStreamCreateInfoEXT',
--- 'cmdBeginQueryIndexedEXT', 'cmdBeginTransformFeedbackEXT',
--- 'cmdBindTransformFeedbackBuffersEXT', 'cmdDrawIndirectByteCountEXT',
--- 'cmdEndQueryIndexedEXT', 'cmdEndTransformFeedbackEXT'
---
--- == Document Notes
---
--- For more information, see the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_transform_feedback 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_transform_feedback  ( cmdBindTransformFeedbackBuffersEXT
-                                                    , cmdBeginTransformFeedbackEXT
-                                                    , cmdUseTransformFeedbackEXT
-                                                    , cmdEndTransformFeedbackEXT
-                                                    , cmdBeginQueryIndexedEXT
-                                                    , cmdUseQueryIndexedEXT
-                                                    , cmdEndQueryIndexedEXT
-                                                    , cmdDrawIndirectByteCountEXT
-                                                    , PhysicalDeviceTransformFeedbackFeaturesEXT(..)
-                                                    , PhysicalDeviceTransformFeedbackPropertiesEXT(..)
-                                                    , PipelineRasterizationStateStreamCreateInfoEXT(..)
-                                                    , PipelineRasterizationStateStreamCreateFlagsEXT(..)
-                                                    , EXT_TRANSFORM_FEEDBACK_SPEC_VERSION
-                                                    , pattern EXT_TRANSFORM_FEEDBACK_SPEC_VERSION
-                                                    , EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME
-                                                    , pattern EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME
-                                                    ) 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 Foreign.Marshal.Alloc (allocaBytes)
-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 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.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.Core10.FundamentalTypes (bool32ToBool)
-import Vulkan.Core10.FundamentalTypes (boolToBool32)
-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(pVkCmdBeginQueryIndexedEXT))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdBeginTransformFeedbackEXT))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdBindTransformFeedbackBuffersEXT))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawIndirectByteCountEXT))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdEndQueryIndexedEXT))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdEndTransformFeedbackEXT))
-import Vulkan.Core10.FundamentalTypes (DeviceSize)
-import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Core10.Enums.QueryControlFlagBits (QueryControlFlagBits(..))
-import Vulkan.Core10.Enums.QueryControlFlagBits (QueryControlFlags)
-import Vulkan.Core10.Handles (QueryPool)
-import Vulkan.Core10.Handles (QueryPool(..))
-import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT))
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdBindTransformFeedbackBuffersEXT
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()
-
--- | vkCmdBindTransformFeedbackBuffersEXT - Bind transform feedback buffers
--- to a command buffer
---
--- = Description
---
--- The values taken from elements i of @pBuffers@, @pOffsets@ and @pSizes@
--- replace the current state for the transform feedback binding
--- @firstBinding@ + i, for i in [0, @bindingCount@). The transform feedback
--- binding is updated to start at the offset indicated by @pOffsets@[i]
--- from the start of the buffer @pBuffers@[i].
---
--- == Valid Usage
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-transformFeedback-02355#
---     'PhysicalDeviceTransformFeedbackFeaturesEXT'::@transformFeedback@
---     /must/ be enabled
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02356#
---     @firstBinding@ /must/ be less than
---     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBuffers@
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02357# The
---     sum of @firstBinding@ and @bindingCount@ /must/ be less than or
---     equal to
---     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBuffers@
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02358# All
---     elements of @pOffsets@ /must/ be less than the size of the
---     corresponding element in @pBuffers@
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02359# All
---     elements of @pOffsets@ /must/ be a multiple of 4
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02360# All
---     elements of @pBuffers@ /must/ have been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT'
---     flag
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pSize-02361# If the
---     optional @pSize@ array is specified, each element of @pSizes@ /must/
---     either be 'Vulkan.Core10.APIConstants.WHOLE_SIZE', or be less than
---     or equal to
---     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBufferSize@
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pSizes-02362# All
---     elements of @pSizes@ /must/ be either
---     'Vulkan.Core10.APIConstants.WHOLE_SIZE', or less than or equal to
---     the size of the corresponding buffer in @pBuffers@
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02363# All
---     elements of @pOffsets@ plus @pSizes@, where the @pSizes@, element is
---     not 'Vulkan.Core10.APIConstants.WHOLE_SIZE', /must/ be less than or
---     equal to the size of the corresponding buffer in @pBuffers@
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02364# Each
---     element of @pBuffers@ that is non-sparse /must/ be bound completely
---     and contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory'
---     object
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-None-02365# Transform
---     feedback /must/ not be active when the
---     'cmdBindTransformFeedbackBuffersEXT' command is recorded
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-parameter#
---     @pBuffers@ /must/ be a valid pointer to an array of @bindingCount@
---     valid 'Vulkan.Core10.Handles.Buffer' handles
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-parameter#
---     @pOffsets@ /must/ be a valid pointer to an array of @bindingCount@
---     'Vulkan.Core10.FundamentalTypes.DeviceSize' values
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-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-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-cmdpool#
---     The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-videocoding# This command
---     /must/ only be called outside of a video coding scope
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-bindingCount-arraylength#
---     @bindingCount@ /must/ be greater than @0@
---
--- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-commonparent# Both of
---     @commandBuffer@, and the elements of @pBuffers@ /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_EXT_transform_feedback VK_EXT_transform_feedback>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdBindTransformFeedbackBuffersEXT :: forall io
-                                    . (MonadIO io)
-                                   => -- | @commandBuffer@ is the command buffer into which the command is
-                                      -- recorded.
-                                      CommandBuffer
-                                   -> -- | @firstBinding@ is the index of the first transform feedback 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)
-                                   -> -- | @pSizes@ is @NULL@ or a pointer to an array of
-                                      -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' buffer sizes, specifying the
-                                      -- maximum number of bytes to capture to the corresponding transform
-                                      -- feedback buffer. If @pSizes@ is @NULL@, or the value of the @pSizes@
-                                      -- array element is 'Vulkan.Core10.APIConstants.WHOLE_SIZE', then the
-                                      -- maximum number of bytes captured will be the size of the corresponding
-                                      -- buffer minus the buffer offset.
-                                      ("sizes" ::: Vector DeviceSize)
-                                   -> io ()
-cmdBindTransformFeedbackBuffersEXT commandBuffer
-                                     firstBinding
-                                     buffers
-                                     offsets
-                                     sizes = liftIO . evalContT $ do
-  let vkCmdBindTransformFeedbackBuffersEXTPtr = pVkCmdBindTransformFeedbackBuffersEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdBindTransformFeedbackBuffersEXTPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindTransformFeedbackBuffersEXT is null" Nothing Nothing
-  let vkCmdBindTransformFeedbackBuffersEXT' = mkVkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXTPtr
-  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
-  let pSizesLength = Data.Vector.length $ (sizes)
-  lift $ unless (fromIntegral pSizesLength == pBuffersLength || pSizesLength == 0) $
-    throwIO $ IOError Nothing InvalidArgument "" "pSizes 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)
-  pSizes <- if Data.Vector.null (sizes)
-    then pure nullPtr
-    else do
-      pPSizes <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (sizes))) * 8)
-      lift $ Data.Vector.imapM_ (\i e -> poke (pPSizes `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((sizes))
-      pure $ pPSizes
-  lift $ traceAroundEvent "vkCmdBindTransformFeedbackBuffersEXT" (vkCmdBindTransformFeedbackBuffersEXT'
-                                                                    (commandBufferHandle (commandBuffer))
-                                                                    (firstBinding)
-                                                                    ((fromIntegral pBuffersLength :: Word32))
-                                                                    (pPBuffers)
-                                                                    (pPOffsets)
-                                                                    pSizes)
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdBeginTransformFeedbackEXT
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()
-
--- | vkCmdBeginTransformFeedbackEXT - Make transform feedback active in the
--- command buffer
---
--- = Description
---
--- The active transform feedback buffers will capture primitives emitted
--- from the corresponding @XfbBuffer@ in the bound graphics pipeline. Any
--- @XfbBuffer@ emitted that does not output to an active transform feedback
--- buffer will not be captured.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-transformFeedback-02366#
---     'PhysicalDeviceTransformFeedbackFeaturesEXT'::@transformFeedback@
---     /must/ be enabled
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-None-02367# Transform feedback
---     /must/ not be active
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02368#
---     @firstCounterBuffer@ /must/ be less than
---     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBuffers@
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02369# The
---     sum of @firstCounterBuffer@ and @counterBufferCount@ /must/ be less
---     than or equal to
---     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBuffers@
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-counterBufferCount-02607# If
---     @counterBufferCount@ is not @0@, and @pCounterBuffers@ is not
---     @NULL@, @pCounterBuffers@ /must/ be a valid pointer to an array of
---     @counterBufferCount@ 'Vulkan.Core10.Handles.Buffer' handles that are
---     either valid or 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-02370#
---     For each buffer handle in the array, if it is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ reference a
---     buffer large enough to hold 4 bytes at the corresponding offset from
---     the @pCounterBufferOffsets@ array
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffer-02371# If
---     @pCounterBuffer@ is @NULL@, then @pCounterBufferOffsets@ /must/ also
---     be @NULL@
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffers-02372# For each
---     buffer handle in the @pCounterBuffers@ array that is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ have been created
---     with a @usage@ value containing
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-None-06233# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid graphics pipeline /must/ be bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-None-04128# The last
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>
---     of the bound graphics pipeline /must/ have been declared with the
---     @Xfb@ execution mode
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-None-02373# Transform feedback
---     /must/ not be made active in a render pass instance with multiview
---     enabled
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-parameter#
---     If @counterBufferCount@ is not @0@, and @pCounterBufferOffsets@ is
---     not @NULL@, @pCounterBufferOffsets@ /must/ be a valid pointer to an
---     array of @counterBufferCount@
---     'Vulkan.Core10.FundamentalTypes.DeviceSize' values
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-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-vkCmdBeginTransformFeedbackEXT-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-renderpass# This command /must/
---     only be called inside of a render pass instance
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-videocoding# This command
---     /must/ only be called outside of a video coding scope
---
--- -   #VUID-vkCmdBeginTransformFeedbackEXT-commonparent# Both of
---     @commandBuffer@, and the elements of @pCounterBuffers@ 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                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdBeginTransformFeedbackEXT :: forall io
-                              . (MonadIO io)
-                             => -- | @commandBuffer@ is the command buffer into which the command is
-                                -- recorded.
-                                CommandBuffer
-                             -> -- | @firstCounterBuffer@ is the index of the first transform feedback buffer
-                                -- corresponding to @pCounterBuffers@[0] and @pCounterBufferOffsets@[0].
-                                ("firstCounterBuffer" ::: Word32)
-                             -> -- | @pCounterBuffers@ is @NULL@ or a pointer to an array of
-                                -- 'Vulkan.Core10.Handles.Buffer' handles to counter buffers. Each buffer
-                                -- contains a 4 byte integer value representing the byte offset from the
-                                -- start of the corresponding transform feedback buffer from where to start
-                                -- capturing vertex data. If the byte offset stored to the counter buffer
-                                -- location was done using 'cmdEndTransformFeedbackEXT' it can be used to
-                                -- resume transform feedback from the previous location. If
-                                -- @pCounterBuffers@ is @NULL@, then transform feedback will start
-                                -- capturing vertex data to byte offset zero in all bound transform
-                                -- feedback buffers. For each element of @pCounterBuffers@ that is
-                                -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', transform feedback will start
-                                -- capturing vertex data to byte zero in the corresponding bound transform
-                                -- feedback buffer.
-                                ("counterBuffers" ::: Vector Buffer)
-                             -> -- | @pCounterBufferOffsets@ is @NULL@ or a pointer to an array of
-                                -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' values specifying offsets
-                                -- within each of the @pCounterBuffers@ where the counter values were
-                                -- previously written. The location in each counter buffer at these offsets
-                                -- /must/ be large enough to contain 4 bytes of data. This data is the
-                                -- number of bytes captured by the previous transform feedback to this
-                                -- buffer. If @pCounterBufferOffsets@ is @NULL@, then it is assumed the
-                                -- offsets are zero.
-                                ("counterBufferOffsets" ::: Vector DeviceSize)
-                             -> io ()
-cmdBeginTransformFeedbackEXT commandBuffer
-                               firstCounterBuffer
-                               counterBuffers
-                               counterBufferOffsets = liftIO . evalContT $ do
-  let vkCmdBeginTransformFeedbackEXTPtr = pVkCmdBeginTransformFeedbackEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdBeginTransformFeedbackEXTPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginTransformFeedbackEXT is null" Nothing Nothing
-  let vkCmdBeginTransformFeedbackEXT' = mkVkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXTPtr
-  let pCounterBuffersLength = Data.Vector.length $ (counterBuffers)
-  let pCounterBufferOffsetsLength = Data.Vector.length $ (counterBufferOffsets)
-  lift $ unless (fromIntegral pCounterBufferOffsetsLength == pCounterBuffersLength || pCounterBufferOffsetsLength == 0) $
-    throwIO $ IOError Nothing InvalidArgument "" "pCounterBufferOffsets and pCounterBuffers must have the same length" Nothing Nothing
-  pPCounterBuffers <- ContT $ allocaBytes @Buffer ((Data.Vector.length (counterBuffers)) * 8)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPCounterBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (counterBuffers)
-  pCounterBufferOffsets <- if Data.Vector.null (counterBufferOffsets)
-    then pure nullPtr
-    else do
-      pPCounterBufferOffsets <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (counterBufferOffsets))) * 8)
-      lift $ Data.Vector.imapM_ (\i e -> poke (pPCounterBufferOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((counterBufferOffsets))
-      pure $ pPCounterBufferOffsets
-  lift $ traceAroundEvent "vkCmdBeginTransformFeedbackEXT" (vkCmdBeginTransformFeedbackEXT'
-                                                              (commandBufferHandle (commandBuffer))
-                                                              (firstCounterBuffer)
-                                                              ((fromIntegral pCounterBuffersLength :: Word32))
-                                                              (pPCounterBuffers)
-                                                              pCounterBufferOffsets)
-  pure $ ()
-
--- | This function will call the supplied action between calls to
--- 'cmdBeginTransformFeedbackEXT' and 'cmdEndTransformFeedbackEXT'
---
--- Note that 'cmdEndTransformFeedbackEXT' is *not* called if an exception
--- is thrown by the inner action.
-cmdUseTransformFeedbackEXT :: forall io r . MonadIO io => CommandBuffer -> Word32 -> Vector Buffer -> Vector DeviceSize -> io r -> io r
-cmdUseTransformFeedbackEXT commandBuffer
-                             firstCounterBuffer
-                             pCounterBuffers
-                             pCounterBufferOffsets
-                             a =
-  (cmdBeginTransformFeedbackEXT commandBuffer
-                                  firstCounterBuffer
-                                  pCounterBuffers
-                                  pCounterBufferOffsets) *> a <* (cmdEndTransformFeedbackEXT commandBuffer
-                                                                                               firstCounterBuffer
-                                                                                               pCounterBuffers
-                                                                                               pCounterBufferOffsets)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdEndTransformFeedbackEXT
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()
-
--- | vkCmdEndTransformFeedbackEXT - Make transform feedback inactive in the
--- command buffer
---
--- == Valid Usage
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-transformFeedback-02374#
---     'PhysicalDeviceTransformFeedbackFeaturesEXT'::@transformFeedback@
---     /must/ be enabled
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-None-02375# Transform feedback
---     /must/ be active
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02376#
---     @firstCounterBuffer@ /must/ be less than
---     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBuffers@
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02377# The sum
---     of @firstCounterBuffer@ and @counterBufferCount@ /must/ be less than
---     or equal to
---     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBuffers@
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-counterBufferCount-02608# If
---     @counterBufferCount@ is not @0@, and @pCounterBuffers@ is not
---     @NULL@, @pCounterBuffers@ /must/ be a valid pointer to an array of
---     @counterBufferCount@ 'Vulkan.Core10.Handles.Buffer' handles that are
---     either valid or 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-02378# For
---     each buffer handle in the array, if it is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ reference a
---     buffer large enough to hold 4 bytes at the corresponding offset from
---     the @pCounterBufferOffsets@ array
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffer-02379# If
---     @pCounterBuffer@ is @NULL@, then @pCounterBufferOffsets@ /must/ also
---     be @NULL@
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffers-02380# For each
---     buffer handle in the @pCounterBuffers@ array that is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ have been created
---     with a @usage@ value containing
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-parameter#
---     If @counterBufferCount@ is not @0@, and @pCounterBufferOffsets@ is
---     not @NULL@, @pCounterBufferOffsets@ /must/ be a valid pointer to an
---     array of @counterBufferCount@
---     'Vulkan.Core10.FundamentalTypes.DeviceSize' values
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-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-vkCmdEndTransformFeedbackEXT-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-renderpass# This command /must/
---     only be called inside of a render pass instance
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-videocoding# This command /must/
---     only be called outside of a video coding scope
---
--- -   #VUID-vkCmdEndTransformFeedbackEXT-commonparent# Both of
---     @commandBuffer@, and the elements of @pCounterBuffers@ 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                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdEndTransformFeedbackEXT :: forall io
-                            . (MonadIO io)
-                           => -- | @commandBuffer@ is the command buffer into which the command is
-                              -- recorded.
-                              CommandBuffer
-                           -> -- | @firstCounterBuffer@ is the index of the first transform feedback buffer
-                              -- corresponding to @pCounterBuffers@[0] and @pCounterBufferOffsets@[0].
-                              ("firstCounterBuffer" ::: Word32)
-                           -> -- | @pCounterBuffers@ is @NULL@ or a pointer to an array of
-                              -- 'Vulkan.Core10.Handles.Buffer' handles to counter buffers. The counter
-                              -- buffers are used to record the current byte positions of each transform
-                              -- feedback buffer where the next vertex output data would be captured.
-                              -- This /can/ be used by a subsequent 'cmdBeginTransformFeedbackEXT' call
-                              -- to resume transform feedback capture from this position. It can also be
-                              -- used by 'cmdDrawIndirectByteCountEXT' to determine the vertex count of
-                              -- the draw call.
-                              ("counterBuffers" ::: Vector Buffer)
-                           -> -- | @pCounterBufferOffsets@ is @NULL@ or a pointer to an array of
-                              -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' values specifying offsets
-                              -- within each of the @pCounterBuffers@ where the counter values can be
-                              -- written. The location in each counter buffer at these offsets /must/ be
-                              -- large enough to contain 4 bytes of data. The data stored at this
-                              -- location is the byte offset from the start of the transform feedback
-                              -- buffer binding where the next vertex data would be written. If
-                              -- @pCounterBufferOffsets@ is @NULL@, then it is assumed the offsets are
-                              -- zero.
-                              ("counterBufferOffsets" ::: Vector DeviceSize)
-                           -> io ()
-cmdEndTransformFeedbackEXT commandBuffer
-                             firstCounterBuffer
-                             counterBuffers
-                             counterBufferOffsets = liftIO . evalContT $ do
-  let vkCmdEndTransformFeedbackEXTPtr = pVkCmdEndTransformFeedbackEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdEndTransformFeedbackEXTPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndTransformFeedbackEXT is null" Nothing Nothing
-  let vkCmdEndTransformFeedbackEXT' = mkVkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXTPtr
-  let pCounterBuffersLength = Data.Vector.length $ (counterBuffers)
-  let pCounterBufferOffsetsLength = Data.Vector.length $ (counterBufferOffsets)
-  lift $ unless (fromIntegral pCounterBufferOffsetsLength == pCounterBuffersLength || pCounterBufferOffsetsLength == 0) $
-    throwIO $ IOError Nothing InvalidArgument "" "pCounterBufferOffsets and pCounterBuffers must have the same length" Nothing Nothing
-  pPCounterBuffers <- ContT $ allocaBytes @Buffer ((Data.Vector.length (counterBuffers)) * 8)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPCounterBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (counterBuffers)
-  pCounterBufferOffsets <- if Data.Vector.null (counterBufferOffsets)
-    then pure nullPtr
-    else do
-      pPCounterBufferOffsets <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (counterBufferOffsets))) * 8)
-      lift $ Data.Vector.imapM_ (\i e -> poke (pPCounterBufferOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((counterBufferOffsets))
-      pure $ pPCounterBufferOffsets
-  lift $ traceAroundEvent "vkCmdEndTransformFeedbackEXT" (vkCmdEndTransformFeedbackEXT'
-                                                            (commandBufferHandle (commandBuffer))
-                                                            (firstCounterBuffer)
-                                                            ((fromIntegral pCounterBuffersLength :: Word32))
-                                                            (pPCounterBuffers)
-                                                            pCounterBufferOffsets)
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdBeginQueryIndexedEXT
-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> Word32 -> IO ()
-
--- | vkCmdBeginQueryIndexedEXT - Begin an indexed query
---
--- = Description
---
--- The 'cmdBeginQueryIndexedEXT' command operates the same as the
--- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery' command, except that
--- it also accepts a query type specific @index@ parameter.
---
--- This command defines an execution dependency between other query
--- commands that reference the same query index.
---
--- 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@ and @index@ 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@ and @index@ 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-vkCmdBeginQueryIndexedEXT-None-00807# All queries used by the
---     command /must/ be /unavailable/
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-02804# The @queryType@
---     used to create @queryPool@ /must/ not be
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-queryType-04729# The @queryType@
---     used to create @queryPool@ /must/ not be
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-query-00802# @query@ /must/ be less
---     than the number of queries in @queryPool@
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-commandBuffer-01885# @commandBuffer@
---     /must/ not be a protected command buffer
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-None-08370# If there is a bound
---     video session, then it /must/ not have been created with
---     @VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR@
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-queryPool-04753# If the @queryPool@
---     was created with the same @queryType@ as that of another
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>
---     query within @commandBuffer@, then @index@ /must/ not match the
---     index used for the active query
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-02338# 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-vkCmdBeginQueryIndexedEXT-queryType-02339# If the @queryType@
---     used to create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
---     the @index@ parameter /must/ be less than
---     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackStreams@
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-06692# If the @queryType@
---     used to create @queryPool@ was not
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
---     and not
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT',
---     the @index@ /must/ be zero
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-06689# 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-vkCmdBeginQueryIndexedEXT-queryType-06690# If the @queryType@
---     used to create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'
---     the @index@ parameter /must/ be less than
---     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackStreams@
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-06691# If the @queryType@
---     used to create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'
---     and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>
---     feature is not enabled, the @index@ parameter /must/ be zero
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-06693# 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-vkCmdBeginQueryIndexedEXT-queryType-02341# If the @queryType@
---     used to create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
---     then
---     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackQueries@
---     /must/ be supported
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-07071# The @queryType@
---     used to create @queryPool@ /must/ not be
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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
---     'Vulkan.Core10.CommandBufferBuilding.cmdResetQueryPool' command
---     affecting the same query
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-queryPool-parameter# @queryPool@
---     /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-flags-parameter# @flags@ /must/ be a
---     valid combination of
---     'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'
---     values
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, compute, decode, or encode
---     operations
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-videocoding# This command /must/
---     only be called outside of a video coding scope
---
--- -   #VUID-vkCmdBeginQueryIndexedEXT-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                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlags',
--- 'Vulkan.Core10.Handles.QueryPool',
--- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery',
--- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery',
--- 'cmdEndQueryIndexedEXT'
-cmdBeginQueryIndexedEXT :: 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
-                        -> -- | @index@ is the query type specific index. When the query type is
-                           -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
-                           -- or 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT',
-                           -- the index represents the vertex stream.
-                           ("index" ::: Word32)
-                        -> io ()
-cmdBeginQueryIndexedEXT commandBuffer queryPool query flags index = liftIO $ do
-  let vkCmdBeginQueryIndexedEXTPtr = pVkCmdBeginQueryIndexedEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdBeginQueryIndexedEXTPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginQueryIndexedEXT is null" Nothing Nothing
-  let vkCmdBeginQueryIndexedEXT' = mkVkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXTPtr
-  traceAroundEvent "vkCmdBeginQueryIndexedEXT" (vkCmdBeginQueryIndexedEXT'
-                                                  (commandBufferHandle (commandBuffer))
-                                                  (queryPool)
-                                                  (query)
-                                                  (flags)
-                                                  (index))
-  pure $ ()
-
--- | This function will call the supplied action between calls to
--- 'cmdBeginQueryIndexedEXT' and 'cmdEndQueryIndexedEXT'
---
--- Note that 'cmdEndQueryIndexedEXT' is *not* called if an exception is
--- thrown by the inner action.
-cmdUseQueryIndexedEXT :: forall io r . MonadIO io => CommandBuffer -> QueryPool -> Word32 -> QueryControlFlags -> Word32 -> io r -> io r
-cmdUseQueryIndexedEXT commandBuffer queryPool query flags index a =
-  (cmdBeginQueryIndexedEXT commandBuffer
-                             queryPool
-                             query
-                             flags
-                             index) *> a <* (cmdEndQueryIndexedEXT commandBuffer
-                                                                     queryPool
-                                                                     query
-                                                                     index)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdEndQueryIndexedEXT
-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()
-
--- | vkCmdEndQueryIndexedEXT - Ends a query
---
--- = Description
---
--- The command completes the query in @queryPool@ identified by @query@ and
--- @index@, and marks it as available.
---
--- The 'cmdEndQueryIndexedEXT' command operates the same as the
--- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery' command, except that
--- it also accepts a query type specific @index@ parameter.
---
--- This command defines an execution dependency between other query
--- commands that reference the same query index.
---
--- 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.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdEndQueryIndexedEXT-None-02342# 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-vkCmdEndQueryIndexedEXT-query-02343# @query@ /must/ be less
---     than the number of queries in @queryPool@
---
--- -   #VUID-vkCmdEndQueryIndexedEXT-commandBuffer-02344# @commandBuffer@
---     /must/ not be a protected command buffer
---
--- -   #VUID-vkCmdEndQueryIndexedEXT-query-02345# If
---     'cmdEndQueryIndexedEXT' 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-vkCmdEndQueryIndexedEXT-queryType-06694# If the @queryType@
---     used to create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
---     or
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT',
---     the @index@ parameter /must/ be less than
---     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackStreams@
---
--- -   #VUID-vkCmdEndQueryIndexedEXT-queryType-06695# If the @queryType@
---     used to create @queryPool@ was not
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
---     and not
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT',
---     the @index@ /must/ be zero
---
--- -   #VUID-vkCmdEndQueryIndexedEXT-queryType-06696# If the @queryType@
---     used to create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
---     or
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT',
---     @index@ /must/ equal the @index@ used to begin the query
---
--- -   #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
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdEndQueryIndexedEXT-queryPool-parameter# @queryPool@
---     /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle
---
--- -   #VUID-vkCmdEndQueryIndexedEXT-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-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, compute, decode, or encode
---     operations
---
--- -   #VUID-vkCmdEndQueryIndexedEXT-videocoding# This command /must/ only
---     be called outside of a video coding scope
---
--- -   #VUID-vkCmdEndQueryIndexedEXT-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                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Handles.QueryPool',
--- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery',
--- 'cmdBeginQueryIndexedEXT',
--- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery'
-cmdEndQueryIndexedEXT :: 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)
-                      -> -- | @index@ is the query type specific index.
-                         ("index" ::: Word32)
-                      -> io ()
-cmdEndQueryIndexedEXT commandBuffer queryPool query index = liftIO $ do
-  let vkCmdEndQueryIndexedEXTPtr = pVkCmdEndQueryIndexedEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdEndQueryIndexedEXTPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndQueryIndexedEXT is null" Nothing Nothing
-  let vkCmdEndQueryIndexedEXT' = mkVkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXTPtr
-  traceAroundEvent "vkCmdEndQueryIndexedEXT" (vkCmdEndQueryIndexedEXT'
-                                                (commandBufferHandle (commandBuffer))
-                                                (queryPool)
-                                                (query)
-                                                (index))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDrawIndirectByteCountEXT
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
-
--- | vkCmdDrawIndirectByteCountEXT - Draw primitives with indirect parameters
--- where the vertex count is derived from the counter byte value in the
--- counter buffer
---
--- = Description
---
--- When the command is executed, primitives are assembled in the same way
--- as done with 'Vulkan.Core10.CommandBufferBuilding.cmdDraw' except the
--- @vertexCount@ is calculated based on the byte count read from
--- @counterBuffer@ at offset @counterBufferOffset@. The assembled
--- primitives execute the bound graphics pipeline.
---
--- The effective @vertexCount@ is calculated as follows:
---
--- > const uint32_t * counterBufferPtr = (const uint8_t *)counterBuffer.address + counterBufferOffset;
--- > vertexCount = floor(max(0, (*counterBufferPtr - counterOffset)) / vertexStride);
---
--- The effective @firstVertex@ is zero.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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
---     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-vkCmdDrawIndirectByteCountEXT-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-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
---     '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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
---     <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
---     <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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #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
---     <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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
---     described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08114# Descriptors in each
---     bound descriptor set, specified via
---     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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
---     <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-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-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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
---     of that instruction /must/ have at least as many components as the
---     buffer view’s format
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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
---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-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>
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-07748# If any shader
---     statically accesses an input attachment, a valid descriptor /must/
---     be bound to the pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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:
---
---     -   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,
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>
---     /must/ be disabled
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-08617# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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-vkCmdDrawIndirectByteCountEXT-None-08618# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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-vkCmdDrawIndirectByteCountEXT-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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-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' 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
---     '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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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', then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #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, 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-vkCmdDrawIndirectByteCountEXT-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_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',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #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, 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-vkCmdDrawIndirectByteCountEXT-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_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',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #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, 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-vkCmdDrawIndirectByteCountEXT-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_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',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-08626# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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', 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-vkCmdDrawIndirectByteCountEXT-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-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, and the most recent call 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-09232# If the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-exclusiveScissor-09235# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-08641# 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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-08643# 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 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-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284#
---     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     then @rasterizationSamples@ for the currently bound graphics
---     pipeline /must/ be the same as the current subpass color and\/or
---     depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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-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',
---     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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179# 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',
---     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-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@
---     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-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
---     '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-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-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'
---     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-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
---     '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-vkCmdDrawIndirectByteCountEXT-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-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
---     '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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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', 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.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
---     'Vulkan.Core13.Promoted_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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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-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-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-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-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 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07286#
---     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
---     '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-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07287#
---     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
---     '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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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>
---     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-vkCmdDrawIndirectByteCountEXT-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
---     'PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-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
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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'
---     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-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'
---     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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-08658# 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'
---     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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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
---     '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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09416#
---     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-08666# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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-vkCmdDrawIndirectByteCountEXT-None-08667# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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-vkCmdDrawIndirectByteCountEXT-None-08668# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-08669# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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-vkCmdDrawIndirectByteCountEXT-None-08670# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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-vkCmdDrawIndirectByteCountEXT-None-08671# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07849# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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.Core13.Promoted_From_VK_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.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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_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-vkCmdDrawIndirectByteCountEXT-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-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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_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-vkCmdDrawIndirectByteCountEXT-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-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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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 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'
---     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-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09417#
---     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, 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09418#
---     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.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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09419#
---     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, 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07484# If
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07485# If
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07486# If
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07487# If
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-coverageModulationTableEnable-07488#
---     If a shader object is bound to any graphics stage or 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09420#
---     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', 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     then the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>
---     feature /must/ be enabled
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     then the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
---     feature /must/ be enabled
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     then the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
---     feature /must/ be enabled
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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
---     '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-vkCmdDrawIndirectByteCountEXT-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-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-09548# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09549# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-07842# If there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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 without 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-vkCmdDrawIndirectByteCountEXT-None-04914# If there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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-vkCmdDrawIndirectByteCountEXT-Input-07939# If there is a
---     shader object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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-vkCmdDrawIndirectByteCountEXT-Input-08734# If there is a
---     shader object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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-04875# If there is a shader
---     object 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
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
---     or 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-vkCmdDrawIndirectByteCountEXT-None-04879# If there is a shader
---     object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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-vkCmdDrawIndirectByteCountEXT-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-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-pNext-09461# If the bound
---     graphics pipeline state was created with
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
---     in the @pNext@ chain of
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
---     any member of
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
---     has a value other than @1@ in @divisor@, and
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
---     /must/ be @0@
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09462# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
---     are used for drawing or the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, any member of the
---     @pVertexBindingDescriptions@ parameter to the
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     call that sets this dynamic state has a value other than @1@ in
---     @divisor@, and
---     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
---     /must/ be @0@
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287#
---     'PhysicalDeviceTransformFeedbackFeaturesEXT'::@transformFeedback@
---     /must/ be enabled
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288# The
---     implementation /must/ support
---     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackDraw@
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289#
---     @vertexStride@ /must/ be greater than 0 and less than or equal to
---     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBufferDataStride@
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567# If
---     @counterBuffer@ is non-sparse then it /must/ be bound completely and
---     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290#
---     @counterBuffer@ /must/ have been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-counterBufferOffset-04568#
---     @counterBufferOffset@ /must/ be a multiple of @4@
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-counterOffset-09474#
---     @counterOffset@ /must/ be a multiple of @4@
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-09475#
---     @vertexStride@ /must/ be a multiple of @4@
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646#
---     @commandBuffer@ /must/ not be a protected command buffer
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameter#
---     @counterBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer'
---     handle
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-renderpass# This command /must/
---     only be called inside of a render pass instance
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-videocoding# This command /must/
---     only be called outside of a video coding scope
---
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-commonparent# Both of
---     @commandBuffer@, and @counterBuffer@ /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_transform_feedback VK_EXT_transform_feedback>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdDrawIndirectByteCountEXT :: forall io
-                             . (MonadIO io)
-                            => -- | @commandBuffer@ is the command buffer into which the command is
-                               -- recorded.
-                               CommandBuffer
-                            -> -- | @instanceCount@ is the number of instances to draw.
-                               ("instanceCount" ::: Word32)
-                            -> -- | @firstInstance@ is the instance ID of the first instance to draw.
-                               ("firstInstance" ::: Word32)
-                            -> -- | @counterBuffer@ is the buffer handle from where the byte count is read.
-                               ("counterBuffer" ::: Buffer)
-                            -> -- | @counterBufferOffset@ is the offset into the buffer used to read the
-                               -- byte count, which is used to calculate the vertex count for this draw
-                               -- call.
-                               ("counterBufferOffset" ::: DeviceSize)
-                            -> -- | @counterOffset@ is subtracted from the byte count read from the
-                               -- @counterBuffer@ at the @counterBufferOffset@
-                               ("counterOffset" ::: Word32)
-                            -> -- | @vertexStride@ is the stride in bytes between each element of the vertex
-                               -- data that is used to calculate the vertex count from the counter value.
-                               -- This value is typically the same value that was used in the graphics
-                               -- pipeline state when the transform feedback was captured as the
-                               -- @XfbStride@.
-                               ("vertexStride" ::: Word32)
-                            -> io ()
-cmdDrawIndirectByteCountEXT commandBuffer
-                              instanceCount
-                              firstInstance
-                              counterBuffer
-                              counterBufferOffset
-                              counterOffset
-                              vertexStride = liftIO $ do
-  let vkCmdDrawIndirectByteCountEXTPtr = pVkCmdDrawIndirectByteCountEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDrawIndirectByteCountEXTPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirectByteCountEXT is null" Nothing Nothing
-  let vkCmdDrawIndirectByteCountEXT' = mkVkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXTPtr
-  traceAroundEvent "vkCmdDrawIndirectByteCountEXT" (vkCmdDrawIndirectByteCountEXT'
-                                                      (commandBufferHandle (commandBuffer))
-                                                      (instanceCount)
-                                                      (firstInstance)
-                                                      (counterBuffer)
-                                                      (counterBufferOffset)
-                                                      (counterOffset)
-                                                      (vertexStride))
-  pure $ ()
-
-
--- | VkPhysicalDeviceTransformFeedbackFeaturesEXT - Structure describing
--- transform feedback features that can be supported by an implementation
---
--- = Members
---
--- This structure describes the following features:
---
--- = Description
---
--- If the 'PhysicalDeviceTransformFeedbackFeaturesEXT' 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. 'PhysicalDeviceTransformFeedbackFeaturesEXT' /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_transform_feedback VK_EXT_transform_feedback>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PhysicalDeviceTransformFeedbackFeaturesEXT = PhysicalDeviceTransformFeedbackFeaturesEXT
-  { -- | #features-transformFeedback# @transformFeedback@ indicates whether the
-    -- implementation supports transform feedback and shader modules /can/
-    -- declare the @TransformFeedback@ capability.
-    transformFeedback :: Bool
-  , -- | #features-geometryStreams# @geometryStreams@ indicates whether the
-    -- implementation supports the @GeometryStreams@ SPIR-V capability.
-    geometryStreams :: Bool
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceTransformFeedbackFeaturesEXT)
-#endif
-deriving instance Show PhysicalDeviceTransformFeedbackFeaturesEXT
-
-instance ToCStruct PhysicalDeviceTransformFeedbackFeaturesEXT where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceTransformFeedbackFeaturesEXT{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (transformFeedback))
-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (geometryStreams))
-    f
-  cStructSize = 24
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_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))
-    f
-
-instance FromCStruct PhysicalDeviceTransformFeedbackFeaturesEXT where
-  peekCStruct p = do
-    transformFeedback <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
-    geometryStreams <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
-    pure $ PhysicalDeviceTransformFeedbackFeaturesEXT
-             (bool32ToBool transformFeedback) (bool32ToBool geometryStreams)
-
-instance Storable PhysicalDeviceTransformFeedbackFeaturesEXT where
-  sizeOf ~_ = 24
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PhysicalDeviceTransformFeedbackFeaturesEXT where
-  zero = PhysicalDeviceTransformFeedbackFeaturesEXT
-           zero
-           zero
-
-
--- | VkPhysicalDeviceTransformFeedbackPropertiesEXT - Structure describing
--- transform feedback properties that can be supported by an implementation
---
--- = Description
---
--- If the 'PhysicalDeviceTransformFeedbackPropertiesEXT' 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_transform_feedback VK_EXT_transform_feedback>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PhysicalDeviceTransformFeedbackPropertiesEXT = PhysicalDeviceTransformFeedbackPropertiesEXT
-  { -- | #limits-maxTransformFeedbackStreams# @maxTransformFeedbackStreams@ is
-    -- the maximum number of vertex streams that can be output from geometry
-    -- shaders declared with the @GeometryStreams@ capability. If the
-    -- implementation does not support
-    -- 'PhysicalDeviceTransformFeedbackFeaturesEXT'::@geometryStreams@ then
-    -- @maxTransformFeedbackStreams@ /must/ be set to @1@.
-    maxTransformFeedbackStreams :: Word32
-  , -- | #limits-maxTransformFeedbackBuffers# @maxTransformFeedbackBuffers@ is
-    -- the maximum number of transform feedback buffers that can be bound for
-    -- capturing shader outputs from the last
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>.
-    maxTransformFeedbackBuffers :: Word32
-  , -- | #limits-maxTransformFeedbackBufferSize# @maxTransformFeedbackBufferSize@
-    -- is the maximum size that can be specified when binding a buffer for
-    -- transform feedback in 'cmdBindTransformFeedbackBuffersEXT'.
-    maxTransformFeedbackBufferSize :: DeviceSize
-  , -- | #limits-maxTransformFeedbackStreamDataSize#
-    -- @maxTransformFeedbackStreamDataSize@ is the maximum amount of data in
-    -- bytes for each vertex that captured to one or more transform feedback
-    -- buffers associated with a specific vertex stream.
-    maxTransformFeedbackStreamDataSize :: Word32
-  , -- | #limits-maxTransformFeedbackBufferDataSize#
-    -- @maxTransformFeedbackBufferDataSize@ is the maximum amount of data in
-    -- bytes for each vertex that can be captured to a specific transform
-    -- feedback buffer.
-    maxTransformFeedbackBufferDataSize :: Word32
-  , -- | #limits-maxTransformFeedbackBufferDataStride#
-    -- @maxTransformFeedbackBufferDataStride@ is the maximum stride between
-    -- each capture of vertex data to the buffer.
-    maxTransformFeedbackBufferDataStride :: Word32
-  , -- | #limits-transformFeedbackQueries# @transformFeedbackQueries@ is
-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the implementation supports the
-    -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
-    -- query type. @transformFeedbackQueries@ is
-    -- 'Vulkan.Core10.FundamentalTypes.FALSE' if queries of this type /cannot/
-    -- be created.
-    transformFeedbackQueries :: Bool
-  , -- | #limits-transformFeedbackStreamsLinesTriangles#
-    -- @transformFeedbackStreamsLinesTriangles@ is
-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the implementation supports the
-    -- geometry shader @OpExecutionMode@ of @OutputLineStrip@ and
-    -- @OutputTriangleStrip@ in addition to @OutputPoints@ when more than one
-    -- vertex stream is output. If @transformFeedbackStreamsLinesTriangles@ is
-    -- 'Vulkan.Core10.FundamentalTypes.FALSE' the implementation only supports
-    -- an @OpExecutionMode@ of @OutputPoints@ when more than one vertex stream
-    -- is output from the geometry shader.
-    transformFeedbackStreamsLinesTriangles :: Bool
-  , -- | #limits-transformFeedbackRasterizationStreamSelect#
-    -- @transformFeedbackRasterizationStreamSelect@ is
-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the implementation supports the
-    -- @GeometryStreams@ SPIR-V capability and the application can use
-    -- 'PipelineRasterizationStateStreamCreateInfoEXT' to modify which vertex
-    -- stream output is used for rasterization. Otherwise vertex stream @0@
-    -- /must/ always be used for rasterization.
-    transformFeedbackRasterizationStreamSelect :: Bool
-  , -- | #limits-transformFeedbackDraw# @transformFeedbackDraw@ is
-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the implementation supports the
-    -- 'cmdDrawIndirectByteCountEXT' function otherwise the function /must/ not
-    -- be called.
-    transformFeedbackDraw :: Bool
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceTransformFeedbackPropertiesEXT)
-#endif
-deriving instance Show PhysicalDeviceTransformFeedbackPropertiesEXT
-
-instance ToCStruct PhysicalDeviceTransformFeedbackPropertiesEXT where
-  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceTransformFeedbackPropertiesEXT{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxTransformFeedbackStreams)
-    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxTransformFeedbackBuffers)
-    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (maxTransformFeedbackBufferSize)
-    poke ((p `plusPtr` 32 :: Ptr Word32)) (maxTransformFeedbackStreamDataSize)
-    poke ((p `plusPtr` 36 :: Ptr Word32)) (maxTransformFeedbackBufferDataSize)
-    poke ((p `plusPtr` 40 :: Ptr Word32)) (maxTransformFeedbackBufferDataStride)
-    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (transformFeedbackQueries))
-    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (transformFeedbackStreamsLinesTriangles))
-    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (transformFeedbackRasterizationStreamSelect))
-    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (transformFeedbackDraw))
-    f
-  cStructSize = 64
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT)
-    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 DeviceSize)) (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 Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))
-    f
-
-instance FromCStruct PhysicalDeviceTransformFeedbackPropertiesEXT where
-  peekCStruct p = do
-    maxTransformFeedbackStreams <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
-    maxTransformFeedbackBuffers <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    maxTransformFeedbackBufferSize <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))
-    maxTransformFeedbackStreamDataSize <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
-    maxTransformFeedbackBufferDataSize <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
-    maxTransformFeedbackBufferDataStride <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
-    transformFeedbackQueries <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))
-    transformFeedbackStreamsLinesTriangles <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))
-    transformFeedbackRasterizationStreamSelect <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))
-    transformFeedbackDraw <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))
-    pure $ PhysicalDeviceTransformFeedbackPropertiesEXT
-             maxTransformFeedbackStreams
-             maxTransformFeedbackBuffers
-             maxTransformFeedbackBufferSize
-             maxTransformFeedbackStreamDataSize
-             maxTransformFeedbackBufferDataSize
-             maxTransformFeedbackBufferDataStride
-             (bool32ToBool transformFeedbackQueries)
-             (bool32ToBool transformFeedbackStreamsLinesTriangles)
-             (bool32ToBool transformFeedbackRasterizationStreamSelect)
-             (bool32ToBool transformFeedbackDraw)
-
-instance Storable PhysicalDeviceTransformFeedbackPropertiesEXT where
-  sizeOf ~_ = 64
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PhysicalDeviceTransformFeedbackPropertiesEXT where
-  zero = PhysicalDeviceTransformFeedbackPropertiesEXT
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkPipelineRasterizationStateStreamCreateInfoEXT - Structure defining the
--- geometry stream used for rasterization
---
--- = Description
---
--- If this structure is not present, @rasterizationStream@ is assumed to be
--- zero.
---
--- == Valid Usage (Implicit)
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>,
--- 'PipelineRasterizationStateStreamCreateFlagsEXT',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PipelineRasterizationStateStreamCreateInfoEXT = PipelineRasterizationStateStreamCreateInfoEXT
-  { -- | @flags@ is reserved for future use.
-    --
-    -- #VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-flags-zerobitmask#
-    -- @flags@ /must/ be @0@
-    flags :: PipelineRasterizationStateStreamCreateFlagsEXT
-  , -- | @rasterizationStream@ is the vertex stream selected for rasterization.
-    --
-    -- #VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02325#
-    -- @rasterizationStream@ /must/ be less than
-    -- 'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackStreams@
-    --
-    -- #VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02326#
-    -- @rasterizationStream@ /must/ be zero if
-    -- 'PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackRasterizationStreamSelect@
-    -- is 'Vulkan.Core10.FundamentalTypes.FALSE'
-    rasterizationStream :: Word32
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PipelineRasterizationStateStreamCreateInfoEXT)
-#endif
-deriving instance Show PipelineRasterizationStateStreamCreateInfoEXT
-
-instance ToCStruct PipelineRasterizationStateStreamCreateInfoEXT where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PipelineRasterizationStateStreamCreateInfoEXT{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr PipelineRasterizationStateStreamCreateFlagsEXT)) (flags)
-    poke ((p `plusPtr` 20 :: Ptr Word32)) (rasterizationStream)
-    f
-  cStructSize = 24
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct PipelineRasterizationStateStreamCreateInfoEXT where
-  peekCStruct p = do
-    flags <- peek @PipelineRasterizationStateStreamCreateFlagsEXT ((p `plusPtr` 16 :: Ptr PipelineRasterizationStateStreamCreateFlagsEXT))
-    rasterizationStream <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    pure $ PipelineRasterizationStateStreamCreateInfoEXT
-             flags rasterizationStream
-
-instance Storable PipelineRasterizationStateStreamCreateInfoEXT where
-  sizeOf ~_ = 24
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PipelineRasterizationStateStreamCreateInfoEXT where
-  zero = PipelineRasterizationStateStreamCreateInfoEXT
-           zero
-           zero
-
-
--- | VkPipelineRasterizationStateStreamCreateFlagsEXT - Reserved for future
--- use
---
--- = Description
---
--- 'PipelineRasterizationStateStreamCreateFlagsEXT' is a bitmask type for
--- setting a mask, but is currently reserved for future use.
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>,
+-- = VK_EXT_transform_feedback
+--
+-- [__Name String__]
+--     @VK_EXT_transform_feedback@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     29
+--
+-- [__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 Vulkan Version 1.1>
+--
+-- [__Special Uses__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>
+--
+-- [__Contact__]
+--
+--     -   Piers Daniell
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_transform_feedback] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_EXT_transform_feedback extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2018-10-09
+--
+-- [__Contributors__]
+--
+--     -   Baldur Karlsson, Valve
+--
+--     -   Boris Zanin, Mobica
+--
+--     -   Daniel Rakos, AMD
+--
+--     -   Donald Scorgie, Imagination
+--
+--     -   Henri Verbeet, CodeWeavers
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   Faith Ekstrand, Intel
+--
+--     -   Jeff Bolz, NVIDIA
+--
+--     -   Jesse Barker, Unity
+--
+--     -   Jesse Hall, Google
+--
+--     -   Pierre-Loup Griffais, Valve
+--
+--     -   Philip Rebohle, DXVK
+--
+--     -   Ruihao Zhang, Qualcomm
+--
+--     -   Samuel Pitoiset, Valve
+--
+--     -   Slawomir Grajewski, Intel
+--
+--     -   Stu Smith, Imagination Technologies
+--
+-- == Description
+--
+-- This extension adds transform feedback to the Vulkan API by exposing the
+-- SPIR-V @TransformFeedback@ and @GeometryStreams@ capabilities to capture
+-- vertex, tessellation or geometry shader outputs to one or more buffers.
+-- It adds API functionality to bind transform feedback buffers to capture
+-- the primitives emitted by the graphics pipeline from SPIR-V outputs
+-- decorated for transform feedback. The transform feedback capture can be
+-- paused and resumed by way of storing and retrieving a byte counter. The
+-- captured data can be drawn again where the vertex count is derived from
+-- the byte counter without CPU intervention. If the implementation is
+-- capable, a vertex stream other than zero can be rasterized.
+--
+-- All these features are designed to match the full capabilities of OpenGL
+-- core transform feedback functionality and beyond. Many of the features
+-- are optional to allow base OpenGL ES GPUs to also implement this
+-- extension.
+--
+-- The primary purpose of the functionality exposed by this extension is to
+-- support translation layers from other 3D APIs. This functionality is not
+-- considered forward looking, and is not expected to be promoted to a KHR
+-- extension or to core Vulkan. Unless this is needed for translation, it
+-- is recommended that developers use alternative techniques of using the
+-- GPU to process and capture vertex data.
+--
+-- == New Commands
+--
+-- -   'cmdBeginQueryIndexedEXT'
+--
+-- -   'cmdBeginTransformFeedbackEXT'
+--
+-- -   'cmdBindTransformFeedbackBuffersEXT'
+--
+-- -   'cmdDrawIndirectByteCountEXT'
+--
+-- -   'cmdEndQueryIndexedEXT'
+--
+-- -   'cmdEndTransformFeedbackEXT'
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceTransformFeedbackFeaturesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceTransformFeedbackPropertiesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo':
+--
+--     -   'PipelineRasterizationStateStreamCreateInfoEXT'
+--
+-- == New Bitmasks
+--
+-- -   'PipelineRasterizationStateStreamCreateFlagsEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME'
+--
+-- -   'EXT_TRANSFORM_FEEDBACK_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.QueryType.QueryType':
+--
+--     -   'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT'
+--
+-- == Issues
+--
+-- 1) Should we include pause\/resume functionality?
+--
+-- __RESOLVED__: Yes, this is needed to ease layering other APIs which have
+-- this functionality. To pause use 'cmdEndTransformFeedbackEXT' and
+-- provide valid buffer handles in the @pCounterBuffers@ array and offsets
+-- in the @pCounterBufferOffsets@ array for the implementation to save the
+-- resume points. Then to resume use 'cmdBeginTransformFeedbackEXT' with
+-- the previous @pCounterBuffers@ and @pCounterBufferOffsets@ values.
+-- Between the pause and resume there needs to be a memory barrier for the
+-- counter buffers with a source access of
+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'
+-- at pipeline stage
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
+-- to a destination access of
+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'
+-- at pipeline stage
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'.
+--
+-- 2) How does this interact with multiview?
+--
+-- __RESOLVED__: Transform feedback cannot be made active in a render pass
+-- with multiview enabled.
+--
+-- 3) How should queries be done?
+--
+-- __RESOLVED__: There is a new query type
+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'.
+-- A query pool created with this type will capture 2 integers -
+-- numPrimitivesWritten and numPrimitivesNeeded - for the specified vertex
+-- stream 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 vertex stream output queried is zero by default, but can be
+-- specified with the new 'cmdBeginQueryIndexedEXT' and
+-- 'cmdEndQueryIndexedEXT' commands.
+--
+-- == Version History
+--
+-- -   Revision 1, 2018-10-09 (Piers Daniell)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_transform_feedback 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_transform_feedback  ( cmdBindTransformFeedbackBuffersEXT
+                                                    , cmdBeginTransformFeedbackEXT
+                                                    , cmdUseTransformFeedbackEXT
+                                                    , cmdEndTransformFeedbackEXT
+                                                    , cmdBeginQueryIndexedEXT
+                                                    , cmdUseQueryIndexedEXT
+                                                    , cmdEndQueryIndexedEXT
+                                                    , cmdDrawIndirectByteCountEXT
+                                                    , PhysicalDeviceTransformFeedbackFeaturesEXT(..)
+                                                    , PhysicalDeviceTransformFeedbackPropertiesEXT(..)
+                                                    , PipelineRasterizationStateStreamCreateInfoEXT(..)
+                                                    , PipelineRasterizationStateStreamCreateFlagsEXT(..)
+                                                    , EXT_TRANSFORM_FEEDBACK_SPEC_VERSION
+                                                    , pattern EXT_TRANSFORM_FEEDBACK_SPEC_VERSION
+                                                    , EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME
+                                                    , pattern EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME
+                                                    ) 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 Foreign.Marshal.Alloc (allocaBytes)
+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 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.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.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+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(pVkCmdBeginQueryIndexedEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdBeginTransformFeedbackEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdBindTransformFeedbackBuffersEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawIndirectByteCountEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdEndQueryIndexedEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdEndTransformFeedbackEXT))
+import Vulkan.Core10.FundamentalTypes (DeviceSize)
+import Vulkan.Core10.FundamentalTypes (Flags)
+import Vulkan.Core10.Enums.QueryControlFlagBits (QueryControlFlagBits(..))
+import Vulkan.Core10.Enums.QueryControlFlagBits (QueryControlFlags)
+import Vulkan.Core10.Handles (QueryPool)
+import Vulkan.Core10.Handles (QueryPool(..))
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdBindTransformFeedbackBuffersEXT
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()
+
+-- | vkCmdBindTransformFeedbackBuffersEXT - Bind transform feedback buffers
+-- to a command buffer
+--
+-- = Description
+--
+-- The values taken from elements i of @pBuffers@, @pOffsets@ and @pSizes@
+-- replace the current state for the transform feedback binding
+-- @firstBinding@ + i, for i in [0, @bindingCount@). The transform feedback
+-- binding is updated to start at the offset indicated by @pOffsets@[i]
+-- from the start of the buffer @pBuffers@[i].
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-transformFeedback-02355#
+--     'PhysicalDeviceTransformFeedbackFeaturesEXT'::@transformFeedback@
+--     /must/ be enabled
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02356#
+--     @firstBinding@ /must/ be less than
+--     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBuffers@
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02357# The
+--     sum of @firstBinding@ and @bindingCount@ /must/ be less than or
+--     equal to
+--     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBuffers@
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02358# All
+--     elements of @pOffsets@ /must/ be less than the size of the
+--     corresponding element in @pBuffers@
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02359# All
+--     elements of @pOffsets@ /must/ be a multiple of 4
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02360# All
+--     elements of @pBuffers@ /must/ have been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT'
+--     flag
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pSize-02361# If the
+--     optional @pSize@ array is specified, each element of @pSizes@ /must/
+--     either be 'Vulkan.Core10.APIConstants.WHOLE_SIZE', or be less than
+--     or equal to
+--     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBufferSize@
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pSizes-02362# All
+--     elements of @pSizes@ /must/ be either
+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE', or less than or equal to
+--     the size of the corresponding buffer in @pBuffers@
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02363# All
+--     elements of @pOffsets@ plus @pSizes@, where the @pSizes@, element is
+--     not 'Vulkan.Core10.APIConstants.WHOLE_SIZE', /must/ be less than or
+--     equal to the size of the corresponding buffer in @pBuffers@
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02364# Each
+--     element of @pBuffers@ that is non-sparse /must/ be bound completely
+--     and contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory'
+--     object
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-None-02365# Transform
+--     feedback /must/ not be active when the
+--     'cmdBindTransformFeedbackBuffersEXT' command is recorded
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-parameter#
+--     @pBuffers@ /must/ be a valid pointer to an array of @bindingCount@
+--     valid 'Vulkan.Core10.Handles.Buffer' handles
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-parameter#
+--     @pOffsets@ /must/ be a valid pointer to an array of @bindingCount@
+--     'Vulkan.Core10.FundamentalTypes.DeviceSize' values
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-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-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-cmdpool#
+--     The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-videocoding# This command
+--     /must/ only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-bindingCount-arraylength#
+--     @bindingCount@ /must/ be greater than @0@
+--
+-- -   #VUID-vkCmdBindTransformFeedbackBuffersEXT-commonparent# Both of
+--     @commandBuffer@, and the elements of @pBuffers@ /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_EXT_transform_feedback VK_EXT_transform_feedback>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdBindTransformFeedbackBuffersEXT :: forall io
+                                    . (MonadIO io)
+                                   => -- | @commandBuffer@ is the command buffer into which the command is
+                                      -- recorded.
+                                      CommandBuffer
+                                   -> -- | @firstBinding@ is the index of the first transform feedback 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)
+                                   -> -- | @pSizes@ is @NULL@ or a pointer to an array of
+                                      -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' buffer sizes, specifying the
+                                      -- maximum number of bytes to capture to the corresponding transform
+                                      -- feedback buffer. If @pSizes@ is @NULL@, or the value of the @pSizes@
+                                      -- array element is 'Vulkan.Core10.APIConstants.WHOLE_SIZE', then the
+                                      -- maximum number of bytes captured will be the size of the corresponding
+                                      -- buffer minus the buffer offset.
+                                      ("sizes" ::: Vector DeviceSize)
+                                   -> io ()
+cmdBindTransformFeedbackBuffersEXT commandBuffer
+                                     firstBinding
+                                     buffers
+                                     offsets
+                                     sizes = liftIO . evalContT $ do
+  let vkCmdBindTransformFeedbackBuffersEXTPtr = pVkCmdBindTransformFeedbackBuffersEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdBindTransformFeedbackBuffersEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindTransformFeedbackBuffersEXT is null" Nothing Nothing
+  let vkCmdBindTransformFeedbackBuffersEXT' = mkVkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXTPtr
+  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
+  let pSizesLength = Data.Vector.length $ (sizes)
+  lift $ unless (fromIntegral pSizesLength == pBuffersLength || pSizesLength == 0) $
+    throwIO $ IOError Nothing InvalidArgument "" "pSizes 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)
+  pSizes <- if Data.Vector.null (sizes)
+    then pure nullPtr
+    else do
+      pPSizes <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (sizes))) * 8)
+      lift $ Data.Vector.imapM_ (\i e -> poke (pPSizes `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((sizes))
+      pure $ pPSizes
+  lift $ traceAroundEvent "vkCmdBindTransformFeedbackBuffersEXT" (vkCmdBindTransformFeedbackBuffersEXT'
+                                                                    (commandBufferHandle (commandBuffer))
+                                                                    (firstBinding)
+                                                                    ((fromIntegral pBuffersLength :: Word32))
+                                                                    (pPBuffers)
+                                                                    (pPOffsets)
+                                                                    pSizes)
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdBeginTransformFeedbackEXT
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()
+
+-- | vkCmdBeginTransformFeedbackEXT - Make transform feedback active in the
+-- command buffer
+--
+-- = Description
+--
+-- The active transform feedback buffers will capture primitives emitted
+-- from the corresponding @XfbBuffer@ in the bound graphics pipeline. Any
+-- @XfbBuffer@ emitted that does not output to an active transform feedback
+-- buffer will not be captured.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-transformFeedback-02366#
+--     'PhysicalDeviceTransformFeedbackFeaturesEXT'::@transformFeedback@
+--     /must/ be enabled
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-None-02367# Transform feedback
+--     /must/ not be active
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02368#
+--     @firstCounterBuffer@ /must/ be less than
+--     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBuffers@
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02369# The
+--     sum of @firstCounterBuffer@ and @counterBufferCount@ /must/ be less
+--     than or equal to
+--     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBuffers@
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-counterBufferCount-02607# If
+--     @counterBufferCount@ is not @0@, and @pCounterBuffers@ is not
+--     @NULL@, @pCounterBuffers@ /must/ be a valid pointer to an array of
+--     @counterBufferCount@ 'Vulkan.Core10.Handles.Buffer' handles that are
+--     either valid or 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-02370#
+--     For each buffer handle in the array, if it is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ reference a
+--     buffer large enough to hold 4 bytes at the corresponding offset from
+--     the @pCounterBufferOffsets@ array
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffer-02371# If
+--     @pCounterBuffer@ is @NULL@, then @pCounterBufferOffsets@ /must/ also
+--     be @NULL@
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffers-02372# For each
+--     buffer handle in the @pCounterBuffers@ array that is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ have been created
+--     with a @usage@ value containing
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-09630# The
+--     sum of @firstCounterBuffer@ and @counterBufferCount@ /must/ be less
+--     than or equal to the number of transform feedback buffers bound by
+--     'cmdBindTransformFeedbackBuffersEXT'
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-None-06233# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid graphics pipeline /must/ be bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-None-04128# The last
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>
+--     of the bound graphics pipeline /must/ have been declared with the
+--     @Xfb@ execution mode
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-None-02373# Transform feedback
+--     /must/ not be made active in a render pass instance with multiview
+--     enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-parameter#
+--     If @counterBufferCount@ is not @0@, and @pCounterBufferOffsets@ is
+--     not @NULL@, @pCounterBufferOffsets@ /must/ be a valid pointer to an
+--     array of @counterBufferCount@
+--     'Vulkan.Core10.FundamentalTypes.DeviceSize' values
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-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-vkCmdBeginTransformFeedbackEXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-renderpass# This command /must/
+--     only be called inside of a render pass instance
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-videocoding# This command
+--     /must/ only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-commonparent# Both of
+--     @commandBuffer@, and the elements of @pCounterBuffers@ 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                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdBeginTransformFeedbackEXT :: forall io
+                              . (MonadIO io)
+                             => -- | @commandBuffer@ is the command buffer into which the command is
+                                -- recorded.
+                                CommandBuffer
+                             -> -- | @firstCounterBuffer@ is the index of the first transform feedback buffer
+                                -- corresponding to @pCounterBuffers@[0] and @pCounterBufferOffsets@[0].
+                                ("firstCounterBuffer" ::: Word32)
+                             -> -- | @pCounterBuffers@ is @NULL@ or a pointer to an array of
+                                -- 'Vulkan.Core10.Handles.Buffer' handles to counter buffers. Each buffer
+                                -- contains a 4 byte integer value representing the byte offset from the
+                                -- start of the corresponding transform feedback buffer from where to start
+                                -- capturing vertex data. If the byte offset stored to the counter buffer
+                                -- location was done using 'cmdEndTransformFeedbackEXT' it can be used to
+                                -- resume transform feedback from the previous location. If
+                                -- @pCounterBuffers@ is @NULL@, then transform feedback will start
+                                -- capturing vertex data to byte offset zero in all bound transform
+                                -- feedback buffers. For each element of @pCounterBuffers@ that is
+                                -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', transform feedback will start
+                                -- capturing vertex data to byte zero in the corresponding bound transform
+                                -- feedback buffer.
+                                ("counterBuffers" ::: Vector Buffer)
+                             -> -- | @pCounterBufferOffsets@ is @NULL@ or a pointer to an array of
+                                -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' values specifying offsets
+                                -- within each of the @pCounterBuffers@ where the counter values were
+                                -- previously written. The location in each counter buffer at these offsets
+                                -- /must/ be large enough to contain 4 bytes of data. This data is the
+                                -- number of bytes captured by the previous transform feedback to this
+                                -- buffer. If @pCounterBufferOffsets@ is @NULL@, then it is assumed the
+                                -- offsets are zero.
+                                ("counterBufferOffsets" ::: Vector DeviceSize)
+                             -> io ()
+cmdBeginTransformFeedbackEXT commandBuffer
+                               firstCounterBuffer
+                               counterBuffers
+                               counterBufferOffsets = liftIO . evalContT $ do
+  let vkCmdBeginTransformFeedbackEXTPtr = pVkCmdBeginTransformFeedbackEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdBeginTransformFeedbackEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginTransformFeedbackEXT is null" Nothing Nothing
+  let vkCmdBeginTransformFeedbackEXT' = mkVkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXTPtr
+  let pCounterBuffersLength = Data.Vector.length $ (counterBuffers)
+  let pCounterBufferOffsetsLength = Data.Vector.length $ (counterBufferOffsets)
+  lift $ unless (fromIntegral pCounterBufferOffsetsLength == pCounterBuffersLength || pCounterBufferOffsetsLength == 0) $
+    throwIO $ IOError Nothing InvalidArgument "" "pCounterBufferOffsets and pCounterBuffers must have the same length" Nothing Nothing
+  pPCounterBuffers <- ContT $ allocaBytes @Buffer ((Data.Vector.length (counterBuffers)) * 8)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPCounterBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (counterBuffers)
+  pCounterBufferOffsets <- if Data.Vector.null (counterBufferOffsets)
+    then pure nullPtr
+    else do
+      pPCounterBufferOffsets <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (counterBufferOffsets))) * 8)
+      lift $ Data.Vector.imapM_ (\i e -> poke (pPCounterBufferOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((counterBufferOffsets))
+      pure $ pPCounterBufferOffsets
+  lift $ traceAroundEvent "vkCmdBeginTransformFeedbackEXT" (vkCmdBeginTransformFeedbackEXT'
+                                                              (commandBufferHandle (commandBuffer))
+                                                              (firstCounterBuffer)
+                                                              ((fromIntegral pCounterBuffersLength :: Word32))
+                                                              (pPCounterBuffers)
+                                                              pCounterBufferOffsets)
+  pure $ ()
+
+-- | This function will call the supplied action between calls to
+-- 'cmdBeginTransformFeedbackEXT' and 'cmdEndTransformFeedbackEXT'
+--
+-- Note that 'cmdEndTransformFeedbackEXT' is *not* called if an exception
+-- is thrown by the inner action.
+cmdUseTransformFeedbackEXT :: forall io r . MonadIO io => CommandBuffer -> Word32 -> Vector Buffer -> Vector DeviceSize -> io r -> io r
+cmdUseTransformFeedbackEXT commandBuffer
+                             firstCounterBuffer
+                             pCounterBuffers
+                             pCounterBufferOffsets
+                             a =
+  (cmdBeginTransformFeedbackEXT commandBuffer
+                                  firstCounterBuffer
+                                  pCounterBuffers
+                                  pCounterBufferOffsets) *> a <* (cmdEndTransformFeedbackEXT commandBuffer
+                                                                                               firstCounterBuffer
+                                                                                               pCounterBuffers
+                                                                                               pCounterBufferOffsets)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdEndTransformFeedbackEXT
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()
+
+-- | vkCmdEndTransformFeedbackEXT - Make transform feedback inactive in the
+-- command buffer
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-transformFeedback-02374#
+--     'PhysicalDeviceTransformFeedbackFeaturesEXT'::@transformFeedback@
+--     /must/ be enabled
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-None-02375# Transform feedback
+--     /must/ be active
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02376#
+--     @firstCounterBuffer@ /must/ be less than
+--     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBuffers@
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02377# The sum
+--     of @firstCounterBuffer@ and @counterBufferCount@ /must/ be less than
+--     or equal to
+--     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBuffers@
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-counterBufferCount-02608# If
+--     @counterBufferCount@ is not @0@, and @pCounterBuffers@ is not
+--     @NULL@, @pCounterBuffers@ /must/ be a valid pointer to an array of
+--     @counterBufferCount@ 'Vulkan.Core10.Handles.Buffer' handles that are
+--     either valid or 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-02378# For
+--     each buffer handle in the array, if it is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ reference a
+--     buffer large enough to hold 4 bytes at the corresponding offset from
+--     the @pCounterBufferOffsets@ array
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffer-02379# If
+--     @pCounterBuffer@ is @NULL@, then @pCounterBufferOffsets@ /must/ also
+--     be @NULL@
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffers-02380# For each
+--     buffer handle in the @pCounterBuffers@ array that is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ have been created
+--     with a @usage@ value containing
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-parameter#
+--     If @counterBufferCount@ is not @0@, and @pCounterBufferOffsets@ is
+--     not @NULL@, @pCounterBufferOffsets@ /must/ be a valid pointer to an
+--     array of @counterBufferCount@
+--     'Vulkan.Core10.FundamentalTypes.DeviceSize' values
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-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-vkCmdEndTransformFeedbackEXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-renderpass# This command /must/
+--     only be called inside of a render pass instance
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-videocoding# This command /must/
+--     only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdEndTransformFeedbackEXT-commonparent# Both of
+--     @commandBuffer@, and the elements of @pCounterBuffers@ 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                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdEndTransformFeedbackEXT :: forall io
+                            . (MonadIO io)
+                           => -- | @commandBuffer@ is the command buffer into which the command is
+                              -- recorded.
+                              CommandBuffer
+                           -> -- | @firstCounterBuffer@ is the index of the first transform feedback buffer
+                              -- corresponding to @pCounterBuffers@[0] and @pCounterBufferOffsets@[0].
+                              ("firstCounterBuffer" ::: Word32)
+                           -> -- | @pCounterBuffers@ is @NULL@ or a pointer to an array of
+                              -- 'Vulkan.Core10.Handles.Buffer' handles to counter buffers. The counter
+                              -- buffers are used to record the current byte positions of each transform
+                              -- feedback buffer where the next vertex output data would be captured.
+                              -- This /can/ be used by a subsequent 'cmdBeginTransformFeedbackEXT' call
+                              -- to resume transform feedback capture from this position. It can also be
+                              -- used by 'cmdDrawIndirectByteCountEXT' to determine the vertex count of
+                              -- the draw call.
+                              ("counterBuffers" ::: Vector Buffer)
+                           -> -- | @pCounterBufferOffsets@ is @NULL@ or a pointer to an array of
+                              -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' values specifying offsets
+                              -- within each of the @pCounterBuffers@ where the counter values can be
+                              -- written. The location in each counter buffer at these offsets /must/ be
+                              -- large enough to contain 4 bytes of data. The data stored at this
+                              -- location is the byte offset from the start of the transform feedback
+                              -- buffer binding where the next vertex data would be written. If
+                              -- @pCounterBufferOffsets@ is @NULL@, then it is assumed the offsets are
+                              -- zero.
+                              ("counterBufferOffsets" ::: Vector DeviceSize)
+                           -> io ()
+cmdEndTransformFeedbackEXT commandBuffer
+                             firstCounterBuffer
+                             counterBuffers
+                             counterBufferOffsets = liftIO . evalContT $ do
+  let vkCmdEndTransformFeedbackEXTPtr = pVkCmdEndTransformFeedbackEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdEndTransformFeedbackEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndTransformFeedbackEXT is null" Nothing Nothing
+  let vkCmdEndTransformFeedbackEXT' = mkVkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXTPtr
+  let pCounterBuffersLength = Data.Vector.length $ (counterBuffers)
+  let pCounterBufferOffsetsLength = Data.Vector.length $ (counterBufferOffsets)
+  lift $ unless (fromIntegral pCounterBufferOffsetsLength == pCounterBuffersLength || pCounterBufferOffsetsLength == 0) $
+    throwIO $ IOError Nothing InvalidArgument "" "pCounterBufferOffsets and pCounterBuffers must have the same length" Nothing Nothing
+  pPCounterBuffers <- ContT $ allocaBytes @Buffer ((Data.Vector.length (counterBuffers)) * 8)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPCounterBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (counterBuffers)
+  pCounterBufferOffsets <- if Data.Vector.null (counterBufferOffsets)
+    then pure nullPtr
+    else do
+      pPCounterBufferOffsets <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (counterBufferOffsets))) * 8)
+      lift $ Data.Vector.imapM_ (\i e -> poke (pPCounterBufferOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((counterBufferOffsets))
+      pure $ pPCounterBufferOffsets
+  lift $ traceAroundEvent "vkCmdEndTransformFeedbackEXT" (vkCmdEndTransformFeedbackEXT'
+                                                            (commandBufferHandle (commandBuffer))
+                                                            (firstCounterBuffer)
+                                                            ((fromIntegral pCounterBuffersLength :: Word32))
+                                                            (pPCounterBuffers)
+                                                            pCounterBufferOffsets)
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdBeginQueryIndexedEXT
+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> Word32 -> IO ()
+
+-- | vkCmdBeginQueryIndexedEXT - Begin an indexed query
+--
+-- = Description
+--
+-- The 'cmdBeginQueryIndexedEXT' command operates the same as the
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery' command, except that
+-- it also accepts a query type specific @index@ parameter.
+--
+-- This command defines an execution dependency between other query
+-- commands that reference the same query index.
+--
+-- 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@ and @index@ 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@ and @index@ 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-vkCmdBeginQueryIndexedEXT-None-00807# All queries used by the
+--     command /must/ be /unavailable/
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-02804# The @queryType@
+--     used to create @queryPool@ /must/ not be
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-queryType-04729# The @queryType@
+--     used to create @queryPool@ /must/ not be
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-query-00802# @query@ /must/ be less
+--     than the number of queries in @queryPool@
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-commandBuffer-01885# @commandBuffer@
+--     /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-None-08370# If there is a bound
+--     video session, then it /must/ not have been created with
+--     @VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR@
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-queryPool-04753# If the @queryPool@
+--     was created with the same @queryType@ as that of another
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>
+--     query within @commandBuffer@, then @index@ /must/ not match the
+--     index used for the active query
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-02338# 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-vkCmdBeginQueryIndexedEXT-queryType-02339# If the @queryType@
+--     used to create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
+--     the @index@ parameter /must/ be less than
+--     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackStreams@
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-06692# If the @queryType@
+--     used to create @queryPool@ was not
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
+--     and not
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT',
+--     the @index@ /must/ be zero
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-06689# 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-vkCmdBeginQueryIndexedEXT-queryType-06690# If the @queryType@
+--     used to create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'
+--     the @index@ parameter /must/ be less than
+--     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackStreams@
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-06691# If the @queryType@
+--     used to create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>
+--     feature is not enabled, the @index@ parameter /must/ be zero
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-06693# 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-vkCmdBeginQueryIndexedEXT-queryType-02341# If the @queryType@
+--     used to create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
+--     then
+--     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackQueries@
+--     /must/ be supported
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-07071# The @queryType@
+--     used to create @queryPool@ /must/ not be
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-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
+--     'Vulkan.Core10.CommandBufferBuilding.cmdResetQueryPool' command
+--     affecting the same query
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-queryPool-parameter# @queryPool@
+--     /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-flags-parameter# @flags@ /must/ be a
+--     valid combination of
+--     'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'
+--     values
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-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-vkCmdBeginQueryIndexedEXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, compute, decode, or encode
+--     operations
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-videocoding# This command /must/
+--     only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdBeginQueryIndexedEXT-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                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlags',
+-- 'Vulkan.Core10.Handles.QueryPool',
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery',
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery',
+-- 'cmdEndQueryIndexedEXT'
+cmdBeginQueryIndexedEXT :: 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
+                        -> -- | @index@ is the query type specific index. When the query type is
+                           -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
+                           -- or 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT',
+                           -- the index represents the vertex stream.
+                           ("index" ::: Word32)
+                        -> io ()
+cmdBeginQueryIndexedEXT commandBuffer queryPool query flags index = liftIO $ do
+  let vkCmdBeginQueryIndexedEXTPtr = pVkCmdBeginQueryIndexedEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdBeginQueryIndexedEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginQueryIndexedEXT is null" Nothing Nothing
+  let vkCmdBeginQueryIndexedEXT' = mkVkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXTPtr
+  traceAroundEvent "vkCmdBeginQueryIndexedEXT" (vkCmdBeginQueryIndexedEXT'
+                                                  (commandBufferHandle (commandBuffer))
+                                                  (queryPool)
+                                                  (query)
+                                                  (flags)
+                                                  (index))
+  pure $ ()
+
+-- | This function will call the supplied action between calls to
+-- 'cmdBeginQueryIndexedEXT' and 'cmdEndQueryIndexedEXT'
+--
+-- Note that 'cmdEndQueryIndexedEXT' is *not* called if an exception is
+-- thrown by the inner action.
+cmdUseQueryIndexedEXT :: forall io r . MonadIO io => CommandBuffer -> QueryPool -> Word32 -> QueryControlFlags -> Word32 -> io r -> io r
+cmdUseQueryIndexedEXT commandBuffer queryPool query flags index a =
+  (cmdBeginQueryIndexedEXT commandBuffer
+                             queryPool
+                             query
+                             flags
+                             index) *> a <* (cmdEndQueryIndexedEXT commandBuffer
+                                                                     queryPool
+                                                                     query
+                                                                     index)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdEndQueryIndexedEXT
+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdEndQueryIndexedEXT - Ends a query
+--
+-- = Description
+--
+-- The command completes the query in @queryPool@ identified by @query@ and
+-- @index@, and marks it as available.
+--
+-- The 'cmdEndQueryIndexedEXT' command operates the same as the
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery' command, except that
+-- it also accepts a query type specific @index@ parameter.
+--
+-- This command defines an execution dependency between other query
+-- commands that reference the same query index.
+--
+-- 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.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdEndQueryIndexedEXT-None-02342# 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-vkCmdEndQueryIndexedEXT-query-02343# @query@ /must/ be less
+--     than the number of queries in @queryPool@
+--
+-- -   #VUID-vkCmdEndQueryIndexedEXT-commandBuffer-02344# @commandBuffer@
+--     /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdEndQueryIndexedEXT-query-02345# If
+--     'cmdEndQueryIndexedEXT' 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-vkCmdEndQueryIndexedEXT-queryType-06694# If the @queryType@
+--     used to create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
+--     or
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT',
+--     the @index@ parameter /must/ be less than
+--     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackStreams@
+--
+-- -   #VUID-vkCmdEndQueryIndexedEXT-queryType-06695# If the @queryType@
+--     used to create @queryPool@ was not
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
+--     and not
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT',
+--     the @index@ /must/ be zero
+--
+-- -   #VUID-vkCmdEndQueryIndexedEXT-queryType-06696# If the @queryType@
+--     used to create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
+--     or
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT',
+--     @index@ /must/ equal the @index@ used to begin the query
+--
+-- -   #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
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdEndQueryIndexedEXT-queryPool-parameter# @queryPool@
+--     /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle
+--
+-- -   #VUID-vkCmdEndQueryIndexedEXT-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-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, compute, decode, or encode
+--     operations
+--
+-- -   #VUID-vkCmdEndQueryIndexedEXT-videocoding# This command /must/ only
+--     be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdEndQueryIndexedEXT-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                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Handles.QueryPool',
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery',
+-- 'cmdBeginQueryIndexedEXT',
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery'
+cmdEndQueryIndexedEXT :: 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)
+                      -> -- | @index@ is the query type specific index.
+                         ("index" ::: Word32)
+                      -> io ()
+cmdEndQueryIndexedEXT commandBuffer queryPool query index = liftIO $ do
+  let vkCmdEndQueryIndexedEXTPtr = pVkCmdEndQueryIndexedEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdEndQueryIndexedEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndQueryIndexedEXT is null" Nothing Nothing
+  let vkCmdEndQueryIndexedEXT' = mkVkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXTPtr
+  traceAroundEvent "vkCmdEndQueryIndexedEXT" (vkCmdEndQueryIndexedEXT'
+                                                (commandBufferHandle (commandBuffer))
+                                                (queryPool)
+                                                (query)
+                                                (index))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDrawIndirectByteCountEXT
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdDrawIndirectByteCountEXT - Draw primitives with indirect parameters
+-- where the vertex count is derived from the counter byte value in the
+-- counter buffer
+--
+-- = Description
+--
+-- When the command is executed, primitives are assembled in the same way
+-- as done with 'Vulkan.Core10.CommandBufferBuilding.cmdDraw' except the
+-- @vertexCount@ is calculated based on the byte count read from
+-- @counterBuffer@ at offset @counterBufferOffset@. The assembled
+-- primitives execute the bound graphics pipeline.
+--
+-- The effective @vertexCount@ is calculated as follows:
+--
+-- > const uint32_t * counterBufferPtr = (const uint8_t *)counterBuffer.address + counterBufferOffset;
+-- > vertexCount = floor(max(0, (*counterBufferPtr - counterOffset)) / vertexStride);
+--
+-- The effective @firstVertex@ is zero.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-vkCmdDrawIndirectByteCountEXT-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-vkCmdDrawIndirectByteCountEXT-mipmapMode-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-unnormalizedCoordinates-09635#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-unnormalizedCoordinates-09636#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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
+--     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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-cubicRangeClamp 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-selectableCubicWeights 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
+--     '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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
+--     <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
+--     <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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-10068# For each array of
+--     resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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
+--     <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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08114# Descriptors in each
+--     bound descriptor set, specified via
+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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 specified statically in the 'Vulkan.Core10.Handles.Pipeline'
+--     object bound to the pipeline bind point used by this command, since
+--     that pipeline was bound
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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
+--     <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-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-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-vkCmdDrawIndirectByteCountEXT-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#spirvenv-image-dimensions ???>
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-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
+--     of that instruction /must/ have at least as many components as the
+--     buffer view’s format
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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
+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-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>
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09600# If a descriptor with
+--     type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-07748# If any shader
+--     statically accesses an input attachment, a valid descriptor /must/
+--     be bound to the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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 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-vkCmdDrawIndirectByteCountEXT-pDepthInputAttachmentIndex-09595#
+--     Input attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-pDepthInputAttachmentIndex-09596#
+--     Input attachment views accessed in a dynamic render pass via a
+--     shader object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-InputAttachmentIndex-09597# If
+--     an input attachment view accessed in a dynamic render pass via a
+--     shader object has an @InputAttachmentIndex@, the
+--     @InputAttachmentIndex@ /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-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:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>
+--     /must/ be disabled
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08617# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08618# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07834# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07836# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07837# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07838# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07839# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07840# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07841# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07843# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07844# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07845# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07847# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07848# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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, and the state is not inherited, then 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-viewportCount-04138# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-vkCmdDrawIndirectByteCountEXT-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-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 a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-07878# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04876# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04877# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-08643# 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 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-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284#
+--     If rasterization is not disabled in the bound graphics pipeline, and
+--     none of the following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the bound graphics pipeline /must/
+--     be the same as the current subpass color and\/or depth\/stencil
+--     attachments
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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-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',
+--     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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-viewMask-06178# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the 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-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179# 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',
+--     the 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-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@
+--     greater than @0@, then each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 bound graphics pipeline
+--
+-- -   #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, 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-vkCmdDrawIndirectByteCountEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command for each
+--     discard rectangle in
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07880# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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-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 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 bound graphics pipeline /must/ be equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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@
+--     used to create the 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-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 not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the 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
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the bound graphics
+--     pipeline /must/ have been created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the bound graphics
+--     pipeline /must/ have been created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185# If
+--     the bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07285#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07287#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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-vkCmdDrawIndirectByteCountEXT-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 bound graphics pipeline /must/ be
+--     equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the bound pipeline /must/ have been created with a
+--     '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>
+--     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-vkCmdDrawIndirectByteCountEXT-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
+--     'PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07619# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07621# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07622# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07623# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08657# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08659# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09416#
+--     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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'
+--     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-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09417#
+--     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, 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09418#
+--     If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09419#
+--     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, 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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-vkCmdDrawIndirectByteCountEXT-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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07484# If
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07485# If
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07486# If
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07487# If
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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-vkCmdDrawIndirectByteCountEXT-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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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-vkCmdDrawIndirectByteCountEXT-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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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-vkCmdDrawIndirectByteCountEXT-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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-coverageModulationTableEnable-07488#
+--     If a shader object is bound to any graphics stage or 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-vkCmdDrawIndirectByteCountEXT-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 bound
+--     pipeline, then the current @rasterizationSamples@ /must/ be the same
+--     as the sample count of the depth\/stencil attachment
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09420#
+--     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', 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-stage-07073# If the 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-vkCmdDrawIndirectByteCountEXT-None-08877# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-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-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-09116# If a shader object
+--     is bound to any graphics stage or the 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-09548# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09549# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09642# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09643# If the bound
+--     graphics pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #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
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-02721# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and that pipeline was created without
+--     enabling
+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'
+--     for @vertexInputs@, then 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-vkCmdDrawIndirectByteCountEXT-None-07842# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-primitiveTopology-10286# If
+--     there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have set @primitiveTopology@ to
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
+--     prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913# If the bound
+--     graphics pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'
+--     dynamic state enabled, but without the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command, and the
+--     @pStrides@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04914# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-Input-07939# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeRobustness vertexAttributeRobustness>
+--     is not enabled and there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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-vkCmdDrawIndirectByteCountEXT-Input-08734# If there is a
+--     shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled and either the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-legacyVertexAttributes legacyVertexAttributes>
+--     feature is not enabled or the SPIR-V Type associated with a given
+--     @Input@ variable of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ is 64-bit, 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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-04875# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @primitiveTopology@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04879# If there is a shader
+--     object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09637# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
+--     feature is not enabled, the 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',
+--     there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-stage-06481# The bound graphics
+--     pipeline /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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-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-pNext-09461# If the bound
+--     graphics pipeline state was created with
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
+--     in the @pNext@ chain of
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
+--     any member of
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
+--     has a value other than @1@ in @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09462# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
+--     are used for drawing or the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, any member of the
+--     @pVertexBindingDescriptions@ parameter to the
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     call that sets this dynamic state has a value other than @1@ in
+--     @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287#
+--     'PhysicalDeviceTransformFeedbackFeaturesEXT'::@transformFeedback@
+--     /must/ be enabled
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288# The
+--     implementation /must/ support
+--     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackDraw@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289#
+--     @vertexStride@ /must/ be greater than 0 and less than or equal to
+--     'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackBufferDataStride@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567# If
+--     @counterBuffer@ is non-sparse then it /must/ be bound completely and
+--     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290#
+--     @counterBuffer@ /must/ have been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-counterBufferOffset-04568#
+--     @counterBufferOffset@ /must/ be a multiple of @4@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-counterOffset-09474#
+--     @counterOffset@ /must/ be a multiple of @4@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-09475#
+--     @vertexStride@ /must/ be a multiple of @4@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646#
+--     @commandBuffer@ /must/ not be a protected command buffer
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameter#
+--     @counterBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer'
+--     handle
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-renderpass# This command /must/
+--     only be called inside of a render pass instance
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-videocoding# This command /must/
+--     only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-commonparent# Both of
+--     @commandBuffer@, and @counterBuffer@ /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_transform_feedback VK_EXT_transform_feedback>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdDrawIndirectByteCountEXT :: forall io
+                             . (MonadIO io)
+                            => -- | @commandBuffer@ is the command buffer into which the command is
+                               -- recorded.
+                               CommandBuffer
+                            -> -- | @instanceCount@ is the number of instances to draw.
+                               ("instanceCount" ::: Word32)
+                            -> -- | @firstInstance@ is the instance ID of the first instance to draw.
+                               ("firstInstance" ::: Word32)
+                            -> -- | @counterBuffer@ is the buffer handle from where the byte count is read.
+                               ("counterBuffer" ::: Buffer)
+                            -> -- | @counterBufferOffset@ is the offset into the buffer used to read the
+                               -- byte count, which is used to calculate the vertex count for this draw
+                               -- call.
+                               ("counterBufferOffset" ::: DeviceSize)
+                            -> -- | @counterOffset@ is subtracted from the byte count read from the
+                               -- @counterBuffer@ at the @counterBufferOffset@
+                               ("counterOffset" ::: Word32)
+                            -> -- | @vertexStride@ is the stride in bytes between each element of the vertex
+                               -- data that is used to calculate the vertex count from the counter value.
+                               -- This value is typically the same value that was used in the graphics
+                               -- pipeline state when the transform feedback was captured as the
+                               -- @XfbStride@.
+                               ("vertexStride" ::: Word32)
+                            -> io ()
+cmdDrawIndirectByteCountEXT commandBuffer
+                              instanceCount
+                              firstInstance
+                              counterBuffer
+                              counterBufferOffset
+                              counterOffset
+                              vertexStride = liftIO $ do
+  let vkCmdDrawIndirectByteCountEXTPtr = pVkCmdDrawIndirectByteCountEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDrawIndirectByteCountEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirectByteCountEXT is null" Nothing Nothing
+  let vkCmdDrawIndirectByteCountEXT' = mkVkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXTPtr
+  traceAroundEvent "vkCmdDrawIndirectByteCountEXT" (vkCmdDrawIndirectByteCountEXT'
+                                                      (commandBufferHandle (commandBuffer))
+                                                      (instanceCount)
+                                                      (firstInstance)
+                                                      (counterBuffer)
+                                                      (counterBufferOffset)
+                                                      (counterOffset)
+                                                      (vertexStride))
+  pure $ ()
+
+
+-- | VkPhysicalDeviceTransformFeedbackFeaturesEXT - Structure describing
+-- transform feedback features that can be supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceTransformFeedbackFeaturesEXT' 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. 'PhysicalDeviceTransformFeedbackFeaturesEXT' /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_transform_feedback VK_EXT_transform_feedback>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceTransformFeedbackFeaturesEXT = PhysicalDeviceTransformFeedbackFeaturesEXT
+  { -- | #features-transformFeedback# @transformFeedback@ indicates whether the
+    -- implementation supports transform feedback and shader modules /can/
+    -- declare the @TransformFeedback@ capability.
+    transformFeedback :: Bool
+  , -- | #features-geometryStreams# @geometryStreams@ indicates whether the
+    -- implementation supports the @GeometryStreams@ SPIR-V capability.
+    geometryStreams :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceTransformFeedbackFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceTransformFeedbackFeaturesEXT
+
+instance ToCStruct PhysicalDeviceTransformFeedbackFeaturesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceTransformFeedbackFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (transformFeedback))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (geometryStreams))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_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))
+    f
+
+instance FromCStruct PhysicalDeviceTransformFeedbackFeaturesEXT where
+  peekCStruct p = do
+    transformFeedback <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    geometryStreams <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pure $ PhysicalDeviceTransformFeedbackFeaturesEXT
+             (bool32ToBool transformFeedback) (bool32ToBool geometryStreams)
+
+instance Storable PhysicalDeviceTransformFeedbackFeaturesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceTransformFeedbackFeaturesEXT where
+  zero = PhysicalDeviceTransformFeedbackFeaturesEXT
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceTransformFeedbackPropertiesEXT - Structure describing
+-- transform feedback properties that can be supported by an implementation
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceTransformFeedbackPropertiesEXT' 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_transform_feedback VK_EXT_transform_feedback>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceTransformFeedbackPropertiesEXT = PhysicalDeviceTransformFeedbackPropertiesEXT
+  { -- | #limits-maxTransformFeedbackStreams# @maxTransformFeedbackStreams@ is
+    -- the maximum number of vertex streams that can be output from geometry
+    -- shaders declared with the @GeometryStreams@ capability. If the
+    -- implementation does not support
+    -- 'PhysicalDeviceTransformFeedbackFeaturesEXT'::@geometryStreams@ then
+    -- @maxTransformFeedbackStreams@ /must/ be @1@.
+    maxTransformFeedbackStreams :: Word32
+  , -- | #limits-maxTransformFeedbackBuffers# @maxTransformFeedbackBuffers@ is
+    -- the maximum number of transform feedback buffers that can be bound for
+    -- capturing shader outputs from the last
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>.
+    maxTransformFeedbackBuffers :: Word32
+  , -- | #limits-maxTransformFeedbackBufferSize# @maxTransformFeedbackBufferSize@
+    -- is the maximum size that can be specified when binding a buffer for
+    -- transform feedback in 'cmdBindTransformFeedbackBuffersEXT'.
+    maxTransformFeedbackBufferSize :: DeviceSize
+  , -- | #limits-maxTransformFeedbackStreamDataSize#
+    -- @maxTransformFeedbackStreamDataSize@ is the maximum amount of data in
+    -- bytes for each vertex that captured to one or more transform feedback
+    -- buffers associated with a specific vertex stream.
+    maxTransformFeedbackStreamDataSize :: Word32
+  , -- | #limits-maxTransformFeedbackBufferDataSize#
+    -- @maxTransformFeedbackBufferDataSize@ is the maximum amount of data in
+    -- bytes for each vertex that can be captured to a specific transform
+    -- feedback buffer.
+    maxTransformFeedbackBufferDataSize :: Word32
+  , -- | #limits-maxTransformFeedbackBufferDataStride#
+    -- @maxTransformFeedbackBufferDataStride@ is the maximum stride between
+    -- each capture of vertex data to the buffer.
+    maxTransformFeedbackBufferDataStride :: Word32
+  , -- | #limits-transformFeedbackQueries# @transformFeedbackQueries@ is
+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the implementation supports the
+    -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
+    -- query type. @transformFeedbackQueries@ is
+    -- 'Vulkan.Core10.FundamentalTypes.FALSE' if queries of this type /cannot/
+    -- be created.
+    transformFeedbackQueries :: Bool
+  , -- | #limits-transformFeedbackStreamsLinesTriangles#
+    -- @transformFeedbackStreamsLinesTriangles@ is
+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the implementation supports the
+    -- geometry shader @OpExecutionMode@ of @OutputLineStrip@ and
+    -- @OutputTriangleStrip@ in addition to @OutputPoints@ when more than one
+    -- vertex stream is output. If @transformFeedbackStreamsLinesTriangles@ is
+    -- 'Vulkan.Core10.FundamentalTypes.FALSE' the implementation only supports
+    -- an @OpExecutionMode@ of @OutputPoints@ when more than one vertex stream
+    -- is output from the geometry shader.
+    transformFeedbackStreamsLinesTriangles :: Bool
+  , -- | #limits-transformFeedbackRasterizationStreamSelect#
+    -- @transformFeedbackRasterizationStreamSelect@ is
+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the implementation supports the
+    -- @GeometryStreams@ SPIR-V capability and the application can use
+    -- 'PipelineRasterizationStateStreamCreateInfoEXT' to modify which vertex
+    -- stream output is used for rasterization. Otherwise vertex stream @0@
+    -- /must/ always be used for rasterization.
+    transformFeedbackRasterizationStreamSelect :: Bool
+  , -- | #limits-transformFeedbackDraw# @transformFeedbackDraw@ is
+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the implementation supports the
+    -- 'cmdDrawIndirectByteCountEXT' function otherwise the function /must/ not
+    -- be called.
+    transformFeedbackDraw :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceTransformFeedbackPropertiesEXT)
+#endif
+deriving instance Show PhysicalDeviceTransformFeedbackPropertiesEXT
+
+instance ToCStruct PhysicalDeviceTransformFeedbackPropertiesEXT where
+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceTransformFeedbackPropertiesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxTransformFeedbackStreams)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxTransformFeedbackBuffers)
+    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (maxTransformFeedbackBufferSize)
+    poke ((p `plusPtr` 32 :: Ptr Word32)) (maxTransformFeedbackStreamDataSize)
+    poke ((p `plusPtr` 36 :: Ptr Word32)) (maxTransformFeedbackBufferDataSize)
+    poke ((p `plusPtr` 40 :: Ptr Word32)) (maxTransformFeedbackBufferDataStride)
+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (transformFeedbackQueries))
+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (transformFeedbackStreamsLinesTriangles))
+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (transformFeedbackRasterizationStreamSelect))
+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (transformFeedbackDraw))
+    f
+  cStructSize = 64
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT)
+    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 DeviceSize)) (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 Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceTransformFeedbackPropertiesEXT where
+  peekCStruct p = do
+    maxTransformFeedbackStreams <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    maxTransformFeedbackBuffers <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    maxTransformFeedbackBufferSize <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))
+    maxTransformFeedbackStreamDataSize <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
+    maxTransformFeedbackBufferDataSize <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
+    maxTransformFeedbackBufferDataStride <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
+    transformFeedbackQueries <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))
+    transformFeedbackStreamsLinesTriangles <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))
+    transformFeedbackRasterizationStreamSelect <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))
+    transformFeedbackDraw <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))
+    pure $ PhysicalDeviceTransformFeedbackPropertiesEXT
+             maxTransformFeedbackStreams
+             maxTransformFeedbackBuffers
+             maxTransformFeedbackBufferSize
+             maxTransformFeedbackStreamDataSize
+             maxTransformFeedbackBufferDataSize
+             maxTransformFeedbackBufferDataStride
+             (bool32ToBool transformFeedbackQueries)
+             (bool32ToBool transformFeedbackStreamsLinesTriangles)
+             (bool32ToBool transformFeedbackRasterizationStreamSelect)
+             (bool32ToBool transformFeedbackDraw)
+
+instance Storable PhysicalDeviceTransformFeedbackPropertiesEXT where
+  sizeOf ~_ = 64
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceTransformFeedbackPropertiesEXT where
+  zero = PhysicalDeviceTransformFeedbackPropertiesEXT
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPipelineRasterizationStateStreamCreateInfoEXT - Structure defining the
+-- geometry stream used for rasterization
+--
+-- = Description
+--
+-- If this structure is not present, @rasterizationStream@ is assumed to be
+-- zero.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>,
+-- 'PipelineRasterizationStateStreamCreateFlagsEXT',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PipelineRasterizationStateStreamCreateInfoEXT = PipelineRasterizationStateStreamCreateInfoEXT
+  { -- | @flags@ is reserved for future use.
+    --
+    -- #VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-flags-zerobitmask#
+    -- @flags@ /must/ be @0@
+    flags :: PipelineRasterizationStateStreamCreateFlagsEXT
+  , -- | @rasterizationStream@ is the vertex stream selected for rasterization.
+    --
+    -- #VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02325#
+    -- @rasterizationStream@ /must/ be less than
+    -- 'PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackStreams@
+    --
+    -- #VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02326#
+    -- @rasterizationStream@ /must/ be zero if
+    -- 'PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackRasterizationStreamSelect@
+    -- is 'Vulkan.Core10.FundamentalTypes.FALSE'
+    rasterizationStream :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineRasterizationStateStreamCreateInfoEXT)
+#endif
+deriving instance Show PipelineRasterizationStateStreamCreateInfoEXT
+
+instance ToCStruct PipelineRasterizationStateStreamCreateInfoEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineRasterizationStateStreamCreateInfoEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineRasterizationStateStreamCreateFlagsEXT)) (flags)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (rasterizationStream)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct PipelineRasterizationStateStreamCreateInfoEXT where
+  peekCStruct p = do
+    flags <- peek @PipelineRasterizationStateStreamCreateFlagsEXT ((p `plusPtr` 16 :: Ptr PipelineRasterizationStateStreamCreateFlagsEXT))
+    rasterizationStream <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    pure $ PipelineRasterizationStateStreamCreateInfoEXT
+             flags rasterizationStream
+
+instance Storable PipelineRasterizationStateStreamCreateInfoEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PipelineRasterizationStateStreamCreateInfoEXT where
+  zero = PipelineRasterizationStateStreamCreateInfoEXT
+           zero
+           zero
+
+
+-- | VkPipelineRasterizationStateStreamCreateFlagsEXT - Reserved for future
+-- use
+--
+-- = Description
+--
+-- 'PipelineRasterizationStateStreamCreateFlagsEXT' is a bitmask type for
+-- setting a mask, but is currently reserved for future use.
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>,
+-- 'Vulkan.Core10.FundamentalTypes.Flags',
 -- 'PipelineRasterizationStateStreamCreateInfoEXT'
 newtype PipelineRasterizationStateStreamCreateFlagsEXT = PipelineRasterizationStateStreamCreateFlagsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_transform_feedback - device extension
 --
--- == VK_EXT_transform_feedback
+-- = VK_EXT_transform_feedback
 --
 -- [__Name String__]
 --     @VK_EXT_transform_feedback@
@@ -18,10 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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 Vulkan Version 1.1>
 --
 -- [__Special Uses__]
 --
@@ -219,13 +221,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceTransformFeedbackFeaturesEXT',
--- 'PhysicalDeviceTransformFeedbackPropertiesEXT',
--- 'PipelineRasterizationStateStreamCreateFlagsEXT',
--- 'PipelineRasterizationStateStreamCreateInfoEXT',
--- 'cmdBeginQueryIndexedEXT', 'cmdBeginTransformFeedbackEXT',
--- 'cmdBindTransformFeedbackBuffersEXT', 'cmdDrawIndirectByteCountEXT',
--- 'cmdEndQueryIndexedEXT', 'cmdEndTransformFeedbackEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_validation_cache - device extension
 --
--- == VK_EXT_validation_cache
+-- = VK_EXT_validation_cache
 --
 -- [__Name String__]
 --     @VK_EXT_validation_cache@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     None
@@ -111,12 +111,7 @@
 --
 -- == See Also
 --
--- 'ShaderModuleValidationCacheCreateInfoEXT',
--- 'ValidationCacheCreateFlagsEXT', 'ValidationCacheCreateInfoEXT',
--- 'Vulkan.Extensions.Handles.ValidationCacheEXT',
--- 'ValidationCacheHeaderVersionEXT', 'createValidationCacheEXT',
--- 'destroyValidationCacheEXT', 'getValidationCacheDataEXT',
--- 'mergeValidationCachesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -233,8 +228,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Applications /can/ track and manage the total host memory size of a
 -- validation cache object using the @pAllocator@. Applications /can/ limit
 -- the amount of data retrieved from a validation cache object in
@@ -254,8 +247,6 @@
 -- synchronized, and the same validation cache object /can/ be used in
 -- multiple threads simultaneously.
 --
--- Note
---
 -- Implementations /should/ make every effort to limit any critical
 -- sections to the actual accesses to the cache, which is expected to be
 -- significantly shorter than the duration of the
@@ -433,11 +424,12 @@
 -- If @pData@ is @NULL@, then the maximum size of the data that /can/ be
 -- retrieved from the validation cache, in bytes, is returned in
 -- @pDataSize@. Otherwise, @pDataSize@ /must/ point to a variable set by
--- the user to the size of the buffer, in bytes, pointed to by @pData@, and
--- on return the variable is overwritten with the amount of data actually
--- written to @pData@. If @pDataSize@ is less than the maximum size that
--- /can/ be retrieved by the validation cache, at most @pDataSize@ bytes
--- will be written to @pData@, and 'getValidationCacheDataEXT' will return
+-- the application to the size of the buffer, in bytes, pointed to by
+-- @pData@, and on return the variable is overwritten with the amount of
+-- data actually written to @pData@. If @pDataSize@ is less than the
+-- maximum size that /can/ be retrieved by the validation cache, at most
+-- @pDataSize@ bytes will be written to @pData@, and
+-- 'getValidationCacheDataEXT' will return
 -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' instead of
 -- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all of the
 -- validation cache was returned.
@@ -477,7 +469,7 @@
 -- |        |                                        | these validation results                 |
 -- +--------+----------------------------------------+------------------------------------------+
 --
--- Layout for validation cache header version
+-- Layout for Validation Cache Header Version
 -- 'VALIDATION_CACHE_HEADER_VERSION_ONE_EXT'
 --
 -- The first four bytes encode the length of the entire validation cache
@@ -578,8 +570,6 @@
 --
 -- = Description
 --
--- Note
---
 -- The details of the merge operation are implementation-dependent, but
 -- implementations /should/ merge the contents of the specified validation
 -- caches and prune duplicate entries.
@@ -817,7 +807,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cache VK_EXT_validation_cache>,
--- 'ValidationCacheCreateInfoEXT'
+-- 'Vulkan.Core10.FundamentalTypes.Flags', 'ValidationCacheCreateInfoEXT'
 newtype ValidationCacheCreateFlagsEXT = ValidationCacheCreateFlagsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_validation_cache - device extension
 --
--- == VK_EXT_validation_cache
+-- = VK_EXT_validation_cache
 --
 -- [__Name String__]
 --     @VK_EXT_validation_cache@
@@ -18,7 +18,7 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     Ratified
 --
 -- [__Extension and Version Dependencies__]
 --     None
@@ -111,12 +111,7 @@
 --
 -- == See Also
 --
--- 'ShaderModuleValidationCacheCreateInfoEXT',
--- 'ValidationCacheCreateFlagsEXT', 'ValidationCacheCreateInfoEXT',
--- 'Vulkan.Extensions.Handles.ValidationCacheEXT',
--- 'ValidationCacheHeaderVersionEXT', 'createValidationCacheEXT',
--- 'destroyValidationCacheEXT', 'getValidationCacheDataEXT',
--- 'mergeValidationCachesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_validation_features - instance extension
 --
--- == VK_EXT_validation_features
+-- = VK_EXT_validation_features
 --
 -- [__Name String__]
 --     @VK_EXT_validation_features@
@@ -80,7 +80,9 @@
 --
 -- == New Structures
 --
--- -   Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo':
+-- -   Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo',
+--     'Vulkan.Core10.Shader.ShaderModuleCreateInfo',
+--     'Vulkan.Extensions.VK_EXT_shader_object.ShaderCreateInfoEXT':
 --
 --     -   'ValidationFeaturesEXT'
 --
@@ -128,8 +130,7 @@
 --
 -- == See Also
 --
--- 'ValidationFeatureDisableEXT', 'ValidationFeatureEnableEXT',
--- 'ValidationFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -205,12 +206,8 @@
 --     the @pEnabledValidationFeatures@ array contains
 --     'VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT',
 --     then it /must/ also contain
---     'VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT'
---
--- -   #VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02968# If
---     the @pEnabledValidationFeatures@ array contains
---     'VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT', then it /must/ not
---     contain 'VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT'
+--     'VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT' or
+--     'VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT'
 --
 -- == Valid Usage (Implicit)
 --
@@ -403,7 +400,11 @@
 pattern VALIDATION_FEATURE_DISABLE_ALL_EXT = ValidationFeatureDisableEXT 0
 
 -- | 'VALIDATION_FEATURE_DISABLE_SHADERS_EXT' specifies that shader
--- validation is disabled. This feature is enabled by default.
+-- validation, both runtime and standalone, is disabled. This validation
+-- occurs inside
+-- 'Vulkan.Extensions.VK_EXT_shader_object.ShaderCreateInfoEXT' and
+-- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo'. This feature is enabled
+-- by default.
 pattern VALIDATION_FEATURE_DISABLE_SHADERS_EXT = ValidationFeatureDisableEXT 1
 
 -- | 'VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT' specifies that thread
@@ -420,8 +421,8 @@
 
 -- | 'VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT' specifies that core
 -- validation checks are disabled. This feature is enabled by default. If
--- this feature is disabled, the shader validation and GPU-assisted
--- validation features are also disabled.
+-- this feature is disabled, 'VALIDATION_FEATURE_DISABLE_SHADERS_EXT' is
+-- implied.
 pattern VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = ValidationFeatureDisableEXT 5
 
 -- | 'VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT' specifies that
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_validation_features - instance extension
 --
--- == VK_EXT_validation_features
+-- = VK_EXT_validation_features
 --
 -- [__Name String__]
 --     @VK_EXT_validation_features@
@@ -80,7 +80,9 @@
 --
 -- == New Structures
 --
--- -   Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo':
+-- -   Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo',
+--     'Vulkan.Core10.Shader.ShaderModuleCreateInfo',
+--     'Vulkan.Extensions.VK_EXT_shader_object.ShaderCreateInfoEXT':
 --
 --     -   'ValidationFeaturesEXT'
 --
@@ -128,8 +130,7 @@
 --
 -- == See Also
 --
--- 'ValidationFeatureDisableEXT', 'ValidationFeatureEnableEXT',
--- 'ValidationFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_validation_flags - instance extension
 --
--- == VK_EXT_validation_flags
+-- = VK_EXT_validation_flags
 --
 -- [__Name String__]
 --     @VK_EXT_validation_flags@
@@ -103,7 +103,7 @@
 --
 -- == See Also
 --
--- 'ValidationCheckEXT', 'ValidationFlagsEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_validation_flags - instance extension
 --
--- == VK_EXT_validation_flags
+-- = VK_EXT_validation_flags
 --
 -- [__Name String__]
 --     @VK_EXT_validation_flags@
@@ -103,7 +103,7 @@
 --
 -- == See Also
 --
--- 'ValidationCheckEXT', 'ValidationFlagsEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_vertex_attribute_divisor - device extension
 --
--- == VK_EXT_vertex_attribute_divisor
+-- = VK_EXT_vertex_attribute_divisor
 --
 -- [__Name String__]
 --     @VK_EXT_vertex_attribute_divisor@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -160,10 +160,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceVertexAttributeDivisorFeaturesEXT',
--- 'PhysicalDeviceVertexAttributeDivisorPropertiesEXT',
--- 'PipelineVertexInputDivisorStateCreateInfoEXT',
--- 'VertexInputBindingDivisorDescriptionEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_vertex_attribute_divisor - device extension
 --
--- == VK_EXT_vertex_attribute_divisor
+-- = VK_EXT_vertex_attribute_divisor
 --
 -- [__Name String__]
 --     @VK_EXT_vertex_attribute_divisor@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -160,10 +160,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceVertexAttributeDivisorFeaturesEXT',
--- 'PhysicalDeviceVertexAttributeDivisorPropertiesEXT',
--- 'PipelineVertexInputDivisorStateCreateInfoEXT',
--- 'VertexInputBindingDivisorDescriptionEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_robustness.hs b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_robustness.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_robustness.hs
@@ -0,0 +1,206 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_vertex_attribute_robustness - device extension
+--
+-- = VK_EXT_vertex_attribute_robustness
+--
+-- [__Name String__]
+--     @VK_EXT_vertex_attribute_robustness@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     609
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__Contact__]
+--
+--     -   Piers Daniell
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_vertex_attribute_robustness] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_EXT_vertex_attribute_robustness extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-11-01
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Daniel Story, Nintendo
+--
+-- == Description
+--
+-- It can be detrimental to performance for applications to have to define
+-- fake vertex attribute locations and buffer bindings for vertex shaders
+-- that may reference attribute locations for which there is no vertex
+-- data.
+--
+-- This extension allows applications to not have to specify fake vertex
+-- attribute locations, and if the vertex shader reads those attributes it
+-- will read (0,0,0,0) or (0,0,0,1).
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceVertexAttributeRobustnessFeaturesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME'
+--
+-- -   'EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT'
+--
+-- == Issues
+--
+-- None
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-11-01 (Piers Daniell)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_attribute_robustness 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_vertex_attribute_robustness  ( PhysicalDeviceVertexAttributeRobustnessFeaturesEXT(..)
+                                                             , EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION
+                                                             , pattern EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION
+                                                             , EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME
+                                                             , pattern EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_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_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT))
+-- | VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT - Structure
+-- describing whether the vertex attribute robustness feature is supported
+-- by an implementation
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceVertexAttributeRobustnessFeaturesEXT' 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. 'PhysicalDeviceVertexAttributeRobustnessFeaturesEXT' /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_vertex_attribute_robustness VK_EXT_vertex_attribute_robustness>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceVertexAttributeRobustnessFeaturesEXT = PhysicalDeviceVertexAttributeRobustnessFeaturesEXT
+  { -- | #features-vertexAttributeRobustness# @vertexAttributeRobustness@
+    -- indicates that vertex shaders /can/ read vertex attribute locations that
+    -- have no vertex attribute description and the value returned is (0,0,0,0)
+    -- or (0,0,0,1).
+    vertexAttributeRobustness :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceVertexAttributeRobustnessFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceVertexAttributeRobustnessFeaturesEXT
+
+instance ToCStruct PhysicalDeviceVertexAttributeRobustnessFeaturesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceVertexAttributeRobustnessFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (vertexAttributeRobustness))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceVertexAttributeRobustnessFeaturesEXT where
+  peekCStruct p = do
+    vertexAttributeRobustness <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceVertexAttributeRobustnessFeaturesEXT
+             (bool32ToBool vertexAttributeRobustness)
+
+instance Storable PhysicalDeviceVertexAttributeRobustnessFeaturesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceVertexAttributeRobustnessFeaturesEXT where
+  zero = PhysicalDeviceVertexAttributeRobustnessFeaturesEXT
+           zero
+
+
+type EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION"
+pattern EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION = 1
+
+
+type EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_vertex_attribute_robustness"
+
+-- No documentation found for TopLevel "VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME"
+pattern EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_vertex_attribute_robustness"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_robustness.hs-boot b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_robustness.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_robustness.hs-boot
@@ -0,0 +1,105 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_vertex_attribute_robustness - device extension
+--
+-- = VK_EXT_vertex_attribute_robustness
+--
+-- [__Name String__]
+--     @VK_EXT_vertex_attribute_robustness@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     609
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__Contact__]
+--
+--     -   Piers Daniell
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_vertex_attribute_robustness] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_EXT_vertex_attribute_robustness extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-11-01
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Daniel Story, Nintendo
+--
+-- == Description
+--
+-- It can be detrimental to performance for applications to have to define
+-- fake vertex attribute locations and buffer bindings for vertex shaders
+-- that may reference attribute locations for which there is no vertex
+-- data.
+--
+-- This extension allows applications to not have to specify fake vertex
+-- attribute locations, and if the vertex shader reads those attributes it
+-- will read (0,0,0,0) or (0,0,0,1).
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceVertexAttributeRobustnessFeaturesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME'
+--
+-- -   'EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT'
+--
+-- == Issues
+--
+-- None
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-11-01 (Piers Daniell)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_attribute_robustness 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_vertex_attribute_robustness  (PhysicalDeviceVertexAttributeRobustnessFeaturesEXT) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceVertexAttributeRobustnessFeaturesEXT
+
+instance ToCStruct PhysicalDeviceVertexAttributeRobustnessFeaturesEXT
+instance Show PhysicalDeviceVertexAttributeRobustnessFeaturesEXT
+
+instance FromCStruct PhysicalDeviceVertexAttributeRobustnessFeaturesEXT
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_vertex_input_dynamic_state - device extension
 --
--- == VK_EXT_vertex_input_dynamic_state
+-- = VK_EXT_vertex_input_dynamic_state
 --
 -- [__Name String__]
 --     @VK_EXT_vertex_input_dynamic_state@
@@ -18,12 +18,12 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -107,9 +107,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceVertexInputDynamicStateFeaturesEXT',
--- 'VertexInputAttributeDescription2EXT',
--- 'VertexInputBindingDescription2EXT', 'cmdSetVertexInputEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -207,6 +205,11 @@
 -- can be used instead of 'cmdSetVertexInputEXT' to dynamically set the
 -- stride.
 --
+-- The vertex attribute description for any location in the range
+-- [0,'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@)
+-- not specified in the @pVertexAttributeDescriptions@ array becomes
+-- undefined.
+--
 -- == Valid Usage
 --
 -- -   #VUID-vkCmdSetVertexInputEXT-None-08546# Either the
@@ -451,7 +454,7 @@
     inputRate :: VertexInputRate
   , -- | @divisor@ is the number of successive instances that will use the same
     -- value of the vertex attribute when instanced rendering is enabled. This
-    -- member /can/ be set to a value other than @1@ if the
+    -- member /can/ be a value other than @1@ if the
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor>
     -- feature is enabled. For example, if the divisor is N, the same vertex
     -- attribute will be applied to N successive instances before moving on to
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_vertex_input_dynamic_state - device extension
 --
--- == VK_EXT_vertex_input_dynamic_state
+-- = VK_EXT_vertex_input_dynamic_state
 --
 -- [__Name String__]
 --     @VK_EXT_vertex_input_dynamic_state@
@@ -18,12 +18,12 @@
 --     2
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -107,9 +107,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceVertexInputDynamicStateFeaturesEXT',
--- 'VertexInputAttributeDescription2EXT',
--- 'VertexInputBindingDescription2EXT', 'cmdSetVertexInputEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_ycbcr_2plane_444_formats - device extension
 --
--- == VK_EXT_ycbcr_2plane_444_formats
+-- = VK_EXT_ycbcr_2plane_444_formats
 --
 -- [__Name String__]
 --     @VK_EXT_ycbcr_2plane_444_formats@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -101,7 +101,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -184,8 +184,6 @@
 -- to selectively enable these features.
 --
 -- == Valid Usage (Implicit)
---
--- Note
 --
 -- Although the formats defined by the @VK_EXT_ycbcr_2plane_444_formats@
 -- were promoted to Vulkan 1.3 as optional formats, the
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_ycbcr_2plane_444_formats - device extension
 --
--- == VK_EXT_ycbcr_2plane_444_formats
+-- = VK_EXT_ycbcr_2plane_444_formats
 --
 -- [__Name String__]
 --     @VK_EXT_ycbcr_2plane_444_formats@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -101,7 +101,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_ycbcr_image_arrays - device extension
 --
--- == VK_EXT_ycbcr_image_arrays
+-- = VK_EXT_ycbcr_image_arrays
 --
 -- [__Name String__]
 --     @VK_EXT_ycbcr_image_arrays@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -71,7 +71,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceYcbcrImageArraysFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_EXT_ycbcr_image_arrays - device extension
 --
--- == VK_EXT_ycbcr_image_arrays
+-- = VK_EXT_ycbcr_image_arrays
 --
 -- [__Name String__]
 --     @VK_EXT_ycbcr_image_arrays@
@@ -18,12 +18,12 @@
 --     1
 --
 -- [__Ratification Status__]
---     Not ratified
+--     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -71,7 +71,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceYcbcrImageArraysFeaturesEXT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_FUCHSIA_buffer_collection - device extension
 --
--- == VK_FUCHSIA_buffer_collection
+-- = VK_FUCHSIA_buffer_collection
 --
 -- [__Name String__]
 --     @VK_FUCHSIA_buffer_collection@
@@ -23,7 +23,11 @@
 -- [__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
+--         
 --     <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 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
@@ -193,21 +197,7 @@
 --
 -- == See Also
 --
--- 'BufferCollectionBufferCreateInfoFUCHSIA',
--- 'BufferCollectionConstraintsInfoFUCHSIA',
--- 'BufferCollectionCreateInfoFUCHSIA',
--- 'Vulkan.Extensions.Handles.BufferCollectionFUCHSIA',
--- 'BufferCollectionImageCreateInfoFUCHSIA',
--- 'BufferCollectionPropertiesFUCHSIA', 'BufferConstraintsInfoFUCHSIA',
--- 'ImageConstraintsInfoFUCHSIA', 'ImageConstraintsInfoFlagBitsFUCHSIA',
--- 'ImageConstraintsInfoFlagsFUCHSIA',
--- 'ImageFormatConstraintsFlagsFUCHSIA',
--- 'ImageFormatConstraintsInfoFUCHSIA',
--- 'ImportMemoryBufferCollectionFUCHSIA', 'SysmemColorSpaceFUCHSIA',
--- 'createBufferCollectionFUCHSIA', 'destroyBufferCollectionFUCHSIA',
--- 'getBufferCollectionPropertiesFUCHSIA',
--- 'setBufferCollectionBufferConstraintsFUCHSIA',
--- 'setBufferCollectionImageConstraintsFUCHSIA'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -1058,7 +1048,7 @@
 -- spaces provided in the
 -- 'ImageFormatConstraintsInfoFUCHSIA'::@pColorSpaces@ array.
 --
--- The implementation must have @formatFeatures@ with all bits set that
+-- The implementation /must/ have @formatFeatures@ with all bits set that
 -- were set in
 -- 'ImageFormatConstraintsInfoFUCHSIA'::@requiredFormatFeatures@, by the
 -- call to 'setBufferCollectionImageConstraintsFUCHSIA', at
@@ -1707,6 +1697,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collection VK_FUCHSIA_buffer_collection>,
+-- 'Vulkan.Core10.FundamentalTypes.Flags',
 -- 'ImageFormatConstraintsInfoFUCHSIA'
 newtype ImageFormatConstraintsFlagsFUCHSIA = ImageFormatConstraintsFlagsFUCHSIA Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
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
@@ -3,7 +3,7 @@
 --
 -- VK_FUCHSIA_buffer_collection - device extension
 --
--- == VK_FUCHSIA_buffer_collection
+-- = VK_FUCHSIA_buffer_collection
 --
 -- [__Name String__]
 --     @VK_FUCHSIA_buffer_collection@
@@ -23,7 +23,11 @@
 -- [__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
+--         
 --     <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 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
@@ -193,21 +197,7 @@
 --
 -- == See Also
 --
--- 'BufferCollectionBufferCreateInfoFUCHSIA',
--- 'BufferCollectionConstraintsInfoFUCHSIA',
--- 'BufferCollectionCreateInfoFUCHSIA',
--- 'Vulkan.Extensions.Handles.BufferCollectionFUCHSIA',
--- 'BufferCollectionImageCreateInfoFUCHSIA',
--- 'BufferCollectionPropertiesFUCHSIA', 'BufferConstraintsInfoFUCHSIA',
--- 'ImageConstraintsInfoFUCHSIA', 'ImageConstraintsInfoFlagBitsFUCHSIA',
--- 'ImageConstraintsInfoFlagsFUCHSIA',
--- 'ImageFormatConstraintsFlagsFUCHSIA',
--- 'ImageFormatConstraintsInfoFUCHSIA',
--- 'ImportMemoryBufferCollectionFUCHSIA', 'SysmemColorSpaceFUCHSIA',
--- 'createBufferCollectionFUCHSIA', 'destroyBufferCollectionFUCHSIA',
--- 'getBufferCollectionPropertiesFUCHSIA',
--- 'setBufferCollectionBufferConstraintsFUCHSIA',
--- 'setBufferCollectionImageConstraintsFUCHSIA'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_FUCHSIA_external_memory - device extension
 --
--- == VK_FUCHSIA_external_memory
+-- = VK_FUCHSIA_external_memory
 --
 -- [__Name String__]
 --     @VK_FUCHSIA_external_memory@
@@ -21,9 +21,13 @@
 --     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
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -103,10 +107,7 @@
 --
 -- == See Also
 --
--- 'ImportMemoryZirconHandleInfoFUCHSIA',
--- 'MemoryGetZirconHandleInfoFUCHSIA',
--- 'MemoryZirconHandlePropertiesFUCHSIA', 'getMemoryZirconHandleFUCHSIA',
--- 'getMemoryZirconHandlePropertiesFUCHSIA'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -289,7 +290,7 @@
                                           -- resource.
                                           --
                                           -- #VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-zirconHandle-04774#
-                                          -- @zirconHandle@ must reference a valid VMO
+                                          -- @zirconHandle@ /must/ reference a valid VMO
                                           ("zirconHandle" ::: Zx_handle_t)
                                        -> io (MemoryZirconHandlePropertiesFUCHSIA)
 getMemoryZirconHandlePropertiesFUCHSIA device
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
@@ -3,7 +3,7 @@
 --
 -- VK_FUCHSIA_external_memory - device extension
 --
--- == VK_FUCHSIA_external_memory
+-- = VK_FUCHSIA_external_memory
 --
 -- [__Name String__]
 --     @VK_FUCHSIA_external_memory@
@@ -21,9 +21,13 @@
 --     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
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -103,10 +107,7 @@
 --
 -- == See Also
 --
--- 'ImportMemoryZirconHandleInfoFUCHSIA',
--- 'MemoryGetZirconHandleInfoFUCHSIA',
--- 'MemoryZirconHandlePropertiesFUCHSIA', 'getMemoryZirconHandleFUCHSIA',
--- 'getMemoryZirconHandlePropertiesFUCHSIA'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_FUCHSIA_external_semaphore - device extension
 --
--- == VK_FUCHSIA_external_semaphore
+-- = VK_FUCHSIA_external_semaphore
 --
 -- [__Name String__]
 --     @VK_FUCHSIA_external_semaphore@
@@ -102,9 +102,7 @@
 --
 -- == See Also
 --
--- 'ImportSemaphoreZirconHandleInfoFUCHSIA',
--- 'SemaphoreGetZirconHandleInfoFUCHSIA',
--- 'getSemaphoreZirconHandleFUCHSIA', 'importSemaphoreZirconHandleFUCHSIA'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -192,8 +190,6 @@
 -- event handle and transfer ownership of it to the application. To avoid
 -- leaking resources, the application /must/ release ownership of the
 -- Zircon event handle when it is no longer needed.
---
--- Note
 --
 -- Ownership can be released in many ways. For example, the application can
 -- call zx_handle_close() on the file descriptor, or transfer ownership
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
@@ -3,7 +3,7 @@
 --
 -- VK_FUCHSIA_external_semaphore - device extension
 --
--- == VK_FUCHSIA_external_semaphore
+-- = VK_FUCHSIA_external_semaphore
 --
 -- [__Name String__]
 --     @VK_FUCHSIA_external_semaphore@
@@ -102,9 +102,7 @@
 --
 -- == See Also
 --
--- 'ImportSemaphoreZirconHandleInfoFUCHSIA',
--- 'SemaphoreGetZirconHandleInfoFUCHSIA',
--- 'getSemaphoreZirconHandleFUCHSIA', 'importSemaphoreZirconHandleFUCHSIA'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_FUCHSIA_imagepipe_surface - instance extension
 --
--- == VK_FUCHSIA_imagepipe_surface
+-- = VK_FUCHSIA_imagepipe_surface
 --
 -- [__Name String__]
 --     @VK_FUCHSIA_imagepipe_surface@
@@ -81,8 +81,7 @@
 --
 -- == See Also
 --
--- 'ImagePipeSurfaceCreateFlagsFUCHSIA',
--- 'ImagePipeSurfaceCreateInfoFUCHSIA', 'createImagePipeSurfaceFUCHSIA'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -318,6 +317,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surface VK_FUCHSIA_imagepipe_surface>,
+-- 'Vulkan.Core10.FundamentalTypes.Flags',
 -- 'ImagePipeSurfaceCreateInfoFUCHSIA'
 newtype ImagePipeSurfaceCreateFlagsFUCHSIA = ImagePipeSurfaceCreateFlagsFUCHSIA Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
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
@@ -3,7 +3,7 @@
 --
 -- VK_FUCHSIA_imagepipe_surface - instance extension
 --
--- == VK_FUCHSIA_imagepipe_surface
+-- = VK_FUCHSIA_imagepipe_surface
 --
 -- [__Name String__]
 --     @VK_FUCHSIA_imagepipe_surface@
@@ -81,8 +81,7 @@
 --
 -- == See Also
 --
--- 'ImagePipeSurfaceCreateFlagsFUCHSIA',
--- 'ImagePipeSurfaceCreateInfoFUCHSIA', 'createImagePipeSurfaceFUCHSIA'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_GGP_frame_token - device extension
 --
--- == VK_GGP_frame_token
+-- = VK_GGP_frame_token
 --
 -- [__Name String__]
 --     @VK_GGP_frame_token@
@@ -75,7 +75,7 @@
 --
 -- == See Also
 --
--- 'PresentFrameTokenGGP'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_GGP_frame_token - device extension
 --
--- == VK_GGP_frame_token
+-- = VK_GGP_frame_token
 --
 -- [__Name String__]
 --     @VK_GGP_frame_token@
@@ -75,7 +75,7 @@
 --
 -- == See Also
 --
--- 'PresentFrameTokenGGP'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_GGP_stream_descriptor_surface - instance extension
 --
--- == VK_GGP_stream_descriptor_surface
+-- = VK_GGP_stream_descriptor_surface
 --
 -- [__Name String__]
 --     @VK_GGP_stream_descriptor_surface@
@@ -106,9 +106,7 @@
 --
 -- == See Also
 --
--- 'StreamDescriptorSurfaceCreateFlagsGGP',
--- 'StreamDescriptorSurfaceCreateInfoGGP',
--- 'createStreamDescriptorSurfaceGGP'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -348,6 +346,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GGP_stream_descriptor_surface VK_GGP_stream_descriptor_surface>,
+-- 'Vulkan.Core10.FundamentalTypes.Flags',
 -- 'StreamDescriptorSurfaceCreateInfoGGP'
 newtype StreamDescriptorSurfaceCreateFlagsGGP = StreamDescriptorSurfaceCreateFlagsGGP Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
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
@@ -3,7 +3,7 @@
 --
 -- VK_GGP_stream_descriptor_surface - instance extension
 --
--- == VK_GGP_stream_descriptor_surface
+-- = VK_GGP_stream_descriptor_surface
 --
 -- [__Name String__]
 --     @VK_GGP_stream_descriptor_surface@
@@ -106,9 +106,7 @@
 --
 -- == See Also
 --
--- 'StreamDescriptorSurfaceCreateFlagsGGP',
--- 'StreamDescriptorSurfaceCreateInfoGGP',
--- 'createStreamDescriptorSurfaceGGP'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_GOOGLE_decorate_string - device extension
 --
--- == VK_GOOGLE_decorate_string
+-- = VK_GOOGLE_decorate_string
 --
 -- [__Name String__]
 --     @VK_GOOGLE_decorate_string@
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
@@ -3,7 +3,7 @@
 --
 -- VK_GOOGLE_display_timing - device extension
 --
--- == VK_GOOGLE_display_timing
+-- = VK_GOOGLE_display_timing
 --
 -- [__Name String__]
 --     @VK_GOOGLE_display_timing@
@@ -94,14 +94,11 @@
 --
 -- == Examples
 --
--- Note
---
 -- The example code for the this extension (like the @VK_KHR_surface@ and
 -- @VK_GOOGLE_display_timing@ extensions) is contained in the cube demo
 -- that is shipped with the official Khronos SDK, and is being kept
 -- up-to-date in that location (see:
--- <https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c>
--- ).
+-- <https://github.com/KhronosGroup/Vulkan-Tools/blob/main/cube/cube.c> ).
 --
 -- == Version History
 --
@@ -111,9 +108,7 @@
 --
 -- == See Also
 --
--- 'PastPresentationTimingGOOGLE', 'PresentTimeGOOGLE',
--- 'PresentTimesInfoGOOGLE', 'RefreshCycleDurationGOOGLE',
--- 'getPastPresentationTimingGOOGLE', 'getRefreshCycleDurationGOOGLE'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_GOOGLE_display_timing - device extension
 --
--- == VK_GOOGLE_display_timing
+-- = VK_GOOGLE_display_timing
 --
 -- [__Name String__]
 --     @VK_GOOGLE_display_timing@
@@ -94,14 +94,11 @@
 --
 -- == Examples
 --
--- Note
---
 -- The example code for the this extension (like the @VK_KHR_surface@ and
 -- @VK_GOOGLE_display_timing@ extensions) is contained in the cube demo
 -- that is shipped with the official Khronos SDK, and is being kept
 -- up-to-date in that location (see:
--- <https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c>
--- ).
+-- <https://github.com/KhronosGroup/Vulkan-Tools/blob/main/cube/cube.c> ).
 --
 -- == Version History
 --
@@ -111,9 +108,7 @@
 --
 -- == See Also
 --
--- 'PastPresentationTimingGOOGLE', 'PresentTimeGOOGLE',
--- 'PresentTimesInfoGOOGLE', 'RefreshCycleDurationGOOGLE',
--- 'getPastPresentationTimingGOOGLE', 'getRefreshCycleDurationGOOGLE'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_GOOGLE_hlsl_functionality1 - device extension
 --
--- == VK_GOOGLE_hlsl_functionality1
+-- = VK_GOOGLE_hlsl_functionality1
 --
 -- [__Name String__]
 --     @VK_GOOGLE_hlsl_functionality1@
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
@@ -3,7 +3,7 @@
 --
 -- VK_GOOGLE_surfaceless_query - instance extension
 --
--- == VK_GOOGLE_surfaceless_query
+-- = VK_GOOGLE_surfaceless_query
 --
 -- [__Name String__]
 --     @VK_GOOGLE_surfaceless_query@
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
@@ -3,7 +3,7 @@
 --
 -- VK_GOOGLE_user_type - device extension
 --
--- == VK_GOOGLE_user_type
+-- = VK_GOOGLE_user_type
 --
 -- [__Name String__]
 --     @VK_GOOGLE_user_type@
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
@@ -3,7848 +3,7703 @@
 --
 -- VK_HUAWEI_cluster_culling_shader - device extension
 --
--- == VK_HUAWEI_cluster_culling_shader
---
--- [__Name String__]
---     @VK_HUAWEI_cluster_culling_shader@
---
--- [__Extension Type__]
---     Device extension
---
--- [__Registered Extension Number__]
---     405
---
--- [__Revision__]
---     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>
---
--- [__SPIR-V Dependencies__]
---
---     -   <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>
---
--- [__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__]
---     2023-08-16
---
--- [__Interactions and External Dependencies__]
---
---     -   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, including per-cluster shading rate. 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 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI':
---
---     -   'PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI'
---
--- -   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'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_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>
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clustershadingratehuawei ClusterShadingRateHUAWEI>
---
--- == 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_DRAW_BUFFER_BINDING             0
--- > #define GPU_INSTANCE_DESCRIPTOR_BINDING     1
--- >
--- > struct BoundingSphere
--- > {
--- >   vec3 center;
--- >   float radius;
--- > };
--- >
--- > 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;
--- >   uint gl_ClusterShadingRateHUAWEI;
--- > };
--- >
--- > 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[];
--- > };
--- >
--- >
--- > float Distance(uint instance_id)
--- > {
--- >     vec3 v = normalize(instance_descriptor[instance_id].sphere.center -
--- >                      instance_descriptor[instance_id].instance_data.view_origin);
--- >     float dist = sqrt(dot(v,v));
--- >
--- >     return dist;
--- > }
--- >
--- > 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()
--- > {
--- >     // get instance description
--- >     instance_id = gl_GlobalInvocationID.x;
--- >     InstanceDescriptor inst_desc = instance_descriptors[instance_id];
--- >
--- >     //instance based culling
--- >     bool render = !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius);
--- >
--- >     if (render)
--- >     {
--- >         // calculate distance
--- >         float distance = Distance(instance_id);
--- >
--- >         // update shading rate built-in variable
--- >         if(distance > 0.7)
--- >             gl_ClusterShadingRateHUAWEI =
--- >                 gl_ShadingRateFlag4VerticalPixelsEXT | gl_ShadingRateFlag4HorizontalPixelsEXT;
--- >         else if(distance > 0.3)
--- >             gl_ClusterShadingRateHUAWEI =
--- >                 gl_ShadingRateFlag2VerticalPixelsEXT | gl_ShadingRateFlag2HorizontalPixelsEXT;
--- >         else
--- >             gl_ClusterShadingRateHUAWEI = 0;
--- >
--- >         // this is a visible cluster, 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.
---
--- -   Revision 3, 2023-08-21 (YuChang Wang)
---
---     -   Add per-cluster shading rate.
---
--- == See Also
---
--- 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI',
--- 'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',
--- 'PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI',
--- '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(..)
-                                                           , PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI(..)
-                                                           , 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 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 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.Kind (Type)
-import Control.Monad.Trans.Cont (ContT(..))
-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.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(pVkCmdDrawClusterHUAWEI))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawClusterIndirectHUAWEI))
-import Vulkan.Core10.FundamentalTypes (DeviceSize)
-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.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))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent 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.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_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',
---     '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_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',
---     '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_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',
---     '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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 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'
---     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-rasterizerDiscardEnable-09416# If the
---     @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# 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.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-rasterizerDiscardEnable-09419# 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, 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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
---     a shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-None-09548# If the current render pass
---     was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-09549# If the current render pass
---     was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent 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.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_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',
---     '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_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',
---     '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_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',
---     '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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 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'
---     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-rasterizerDiscardEnable-09416#
---     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417#
---     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, 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-rasterizerDiscardEnable-09418#
---     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.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-rasterizerDiscardEnable-09419#
---     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, 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
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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
---     a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420#
---     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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-None-09548# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09549# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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.
+-- = VK_HUAWEI_cluster_culling_shader
+--
+-- [__Name String__]
+--     @VK_HUAWEI_cluster_culling_shader@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     405
+--
+-- [__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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <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>
+--
+-- [__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__]
+--     2023-08-16
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/main/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, including per-cluster shading rate. 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 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI':
+--
+--     -   'PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI'
+--
+-- -   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'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_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>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clustershadingratehuawei ClusterShadingRateHUAWEI>
+--
+-- == 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_DRAW_BUFFER_BINDING             0
+-- > #define GPU_INSTANCE_DESCRIPTOR_BINDING     1
+-- >
+-- > struct BoundingSphere
+-- > {
+-- >   vec3 center;
+-- >   float radius;
+-- > };
+-- >
+-- > 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;
+-- >   uint gl_ClusterShadingRateHUAWEI;
+-- > };
+-- >
+-- > 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[];
+-- > };
+-- >
+-- >
+-- > float Distance(uint instance_id)
+-- > {
+-- >     vec3 v = normalize(instance_descriptor[instance_id].sphere.center -
+-- >                      instance_descriptor[instance_id].instance_data.view_origin);
+-- >     float dist = sqrt(dot(v,v));
+-- >
+-- >     return dist;
+-- > }
+-- >
+-- > 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()
+-- > {
+-- >     // get instance description
+-- >     instance_id = gl_GlobalInvocationID.x;
+-- >     InstanceDescriptor inst_desc = instance_descriptors[instance_id];
+-- >
+-- >     //instance based culling
+-- >     bool render = !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius);
+-- >
+-- >     if (render)
+-- >     {
+-- >         // calculate distance
+-- >         float distance = Distance(instance_id);
+-- >
+-- >         // update shading rate built-in variable
+-- >         if(distance > 0.7)
+-- >             gl_ClusterShadingRateHUAWEI =
+-- >                 gl_ShadingRateFlag4VerticalPixelsEXT | gl_ShadingRateFlag4HorizontalPixelsEXT;
+-- >         else if(distance > 0.3)
+-- >             gl_ClusterShadingRateHUAWEI =
+-- >                 gl_ShadingRateFlag2VerticalPixelsEXT | gl_ShadingRateFlag2HorizontalPixelsEXT;
+-- >         else
+-- >             gl_ClusterShadingRateHUAWEI = 0;
+-- >
+-- >         // this is a visible cluster, 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.
+--
+-- -   Revision 3, 2023-08-21 (YuChang Wang)
+--
+--     -   Add per-cluster shading rate.
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == 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(..)
+                                                           , PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI(..)
+                                                           , 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 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 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.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+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.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(pVkCmdDrawClusterHUAWEI))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawClusterIndirectHUAWEI))
+import Vulkan.Core10.FundamentalTypes (DeviceSize)
+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.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))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of resources
+--     that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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
+--     specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with type
+--     equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595# Input
+--     attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-pDepthInputAttachmentIndex-09596# Input
+--     attachment views accessed in a dynamic render pass via a shader
+--     object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-InputAttachmentIndex-09597# If an input
+--     attachment view accessed in a dynamic render pass via a shader
+--     object has an @InputAttachmentIndex@, the @InputAttachmentIndex@
+--     /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08618# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07834# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07836# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07837# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07838# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07839# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07840# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07841# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07843# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07844# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07845# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07847# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07848# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-viewportCount-03417# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-scissorCount-03418# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-viewportCount-03419# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-04876# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-04877# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-logicOp-04878# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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
+--     bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07621# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07622# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07623# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09416# If the
+--     @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# If a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419# 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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-coverageModulationTableEnable-07488# If
+--     a shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-None-09548# If the current render pass
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09549# If the current render pass
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09642# If the current render pass
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09643# If the bound graphics
+--     pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-stage-06480# The bound graphics
+--     pipeline /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-unnormalizedCoordinates-09635#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-unnormalizedCoordinates-09636#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of
+--     resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor
+--     with type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595#
+--     Input attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthInputAttachmentIndex-09596#
+--     Input attachment views accessed in a dynamic render pass via a
+--     shader object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-InputAttachmentIndex-09597# If
+--     an input attachment view accessed in a dynamic render pass via a
+--     shader object has an @InputAttachmentIndex@, the
+--     @InputAttachmentIndex@ /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08618# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07834# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07836# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07837# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07838# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07839# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07840# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07841# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07843# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07844# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07845# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07847# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07848# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-03417# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-scissorCount-03418# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-03419# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which 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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-04876# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-04877# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-logicOp-04878# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07621# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07622# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07623# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09416#
+--     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417#
+--     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, 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-rasterizerDiscardEnable-09418#
+--     If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419#
+--     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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-coverageModulationTableEnable-07488#
+--     If a shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420#
+--     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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-None-09548# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09549# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09642# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09643# If the bound
+--     graphics pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-stage-06480# The bound graphics
+--     pipeline /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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)
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
@@ -3,7 +3,7 @@
 --
 -- VK_HUAWEI_cluster_culling_shader - device extension
 --
--- == VK_HUAWEI_cluster_culling_shader
+-- = VK_HUAWEI_cluster_culling_shader
 --
 -- [__Name String__]
 --     @VK_HUAWEI_cluster_culling_shader@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -43,7 +45,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   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>.
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/huawei/GLSL_HUAWEI_cluster_culling_shader.txt GL_HUAWEI_cluster_culling_shader>.
 --
 -- [__Contributors__]
 --
@@ -349,10 +351,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI',
--- 'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',
--- 'PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI',
--- 'cmdDrawClusterHUAWEI', 'cmdDrawClusterIndirectHUAWEI'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_HUAWEI_hdr_vivid.hs b/src/Vulkan/Extensions/VK_HUAWEI_hdr_vivid.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_HUAWEI_hdr_vivid.hs
@@ -0,0 +1,289 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_HUAWEI_hdr_vivid - device extension
+--
+-- = VK_HUAWEI_hdr_vivid
+--
+-- [__Name String__]
+--     @VK_HUAWEI_hdr_vivid@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     591
+--
+-- [__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 Vulkan Version 1.1>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_hdr_metadata VK_EXT_hdr_metadata>
+--
+-- [__Contact__]
+--
+--     -   Zehui Lin
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_HUAWEI_hdr_vivid] @bactlink%0A*Here describe the issue or question you have about the VK_HUAWEI_hdr_vivid extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-10-08
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Juntao Li, Huawei
+--
+--     -   Pan Gao, Huawei
+--
+--     -   Xiufeng Zhang, Huawei
+--
+--     -   Zehui Lin, Huawei
+--
+-- == Description
+--
+-- This extension allows applications to assign HDR Vivid (T\/UWA
+-- 005.1-2022) metadata to swapchains.
+--
+-- HDR Vivid is an HDR standard released by UWA (UHD World Association). It
+-- defines tone mapping from the metadata to better preserve the creator’s
+-- intentions and achieve better consistency across devices with different
+-- display capabilities.
+--
+-- == New Structures
+--
+-- -   Extending 'Vulkan.Extensions.VK_EXT_hdr_metadata.HdrMetadataEXT':
+--
+--     -   'HdrVividDynamicMetadataHUAWEI'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceHdrVividFeaturesHUAWEI'
+--
+-- == New Enum Constants
+--
+-- -   'HUAWEI_HDR_VIVID_EXTENSION_NAME'
+--
+-- -   'HUAWEI_HDR_VIVID_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-10-08 (Zehui Lin)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_hdr_vivid 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_hdr_vivid  ( HdrVividDynamicMetadataHUAWEI(..)
+                                              , PhysicalDeviceHdrVividFeaturesHUAWEI(..)
+                                              , HUAWEI_HDR_VIVID_SPEC_VERSION
+                                              , pattern HUAWEI_HDR_VIVID_SPEC_VERSION
+                                              , HUAWEI_HDR_VIVID_EXTENSION_NAME
+                                              , pattern HUAWEI_HDR_VIVID_EXTENSION_NAME
+                                              ) where
+
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import Data.Coerce (coerce)
+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.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 Foreign.Ptr (Ptr)
+import Data.Word (Word64)
+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_HDR_VIVID_DYNAMIC_METADATA_HUAWEI))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI))
+-- | VkHdrVividDynamicMetadataHUAWEI - specify HDR Vivid dynamic metadata
+--
+-- = Description
+--
+-- The HDR Vivid metadata is intended to be used as defined in the T\/UWA
+-- 005.1-2022 specification. The validity and use of this data is outside
+-- the scope of Vulkan.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_hdr_vivid VK_HUAWEI_hdr_vivid>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data HdrVividDynamicMetadataHUAWEI = HdrVividDynamicMetadataHUAWEI
+  { -- | @dynamicMetadataSize@ is the size in bytes of the dynamic metadata.
+    --
+    -- #VUID-VkHdrVividDynamicMetadataHUAWEI-dynamicMetadataSize-arraylength#
+    -- @dynamicMetadataSize@ /must/ be greater than @0@
+    dynamicMetadataSize :: Word64
+  , -- | @pDynamicMetadata@ is a pointer to the dynamic metadata.
+    --
+    -- #VUID-VkHdrVividDynamicMetadataHUAWEI-pDynamicMetadata-parameter#
+    -- @pDynamicMetadata@ /must/ be a valid pointer to an array of
+    -- @dynamicMetadataSize@ bytes
+    dynamicMetadata :: Ptr ()
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (HdrVividDynamicMetadataHUAWEI)
+#endif
+deriving instance Show HdrVividDynamicMetadataHUAWEI
+
+instance ToCStruct HdrVividDynamicMetadataHUAWEI where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p HdrVividDynamicMetadataHUAWEI{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (dynamicMetadataSize))
+    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (dynamicMetadata)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (zero))
+    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)
+    f
+
+instance FromCStruct HdrVividDynamicMetadataHUAWEI where
+  peekCStruct p = do
+    dynamicMetadataSize <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))
+    pDynamicMetadata <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))
+    pure $ HdrVividDynamicMetadataHUAWEI
+             (coerce @CSize @Word64 dynamicMetadataSize) pDynamicMetadata
+
+instance Storable HdrVividDynamicMetadataHUAWEI where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero HdrVividDynamicMetadataHUAWEI where
+  zero = HdrVividDynamicMetadataHUAWEI
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceHdrVividFeaturesHUAWEI - Structure describing whether
+-- HDR Vivid metadata is supported
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceHdrVividFeaturesHUAWEI' 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. 'PhysicalDeviceHdrVividFeaturesHUAWEI' /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_hdr_vivid VK_HUAWEI_hdr_vivid>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceHdrVividFeaturesHUAWEI = PhysicalDeviceHdrVividFeaturesHUAWEI
+  { -- | #features-hdrVivid# @hdrVivid@ specifies whether HDR Vivid metadata is
+    -- supported.
+    hdrVivid :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceHdrVividFeaturesHUAWEI)
+#endif
+deriving instance Show PhysicalDeviceHdrVividFeaturesHUAWEI
+
+instance ToCStruct PhysicalDeviceHdrVividFeaturesHUAWEI where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceHdrVividFeaturesHUAWEI{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (hdrVivid))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceHdrVividFeaturesHUAWEI where
+  peekCStruct p = do
+    hdrVivid <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceHdrVividFeaturesHUAWEI
+             (bool32ToBool hdrVivid)
+
+instance Storable PhysicalDeviceHdrVividFeaturesHUAWEI where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceHdrVividFeaturesHUAWEI where
+  zero = PhysicalDeviceHdrVividFeaturesHUAWEI
+           zero
+
+
+type HUAWEI_HDR_VIVID_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_HUAWEI_HDR_VIVID_SPEC_VERSION"
+pattern HUAWEI_HDR_VIVID_SPEC_VERSION :: forall a . Integral a => a
+pattern HUAWEI_HDR_VIVID_SPEC_VERSION = 1
+
+
+type HUAWEI_HDR_VIVID_EXTENSION_NAME = "VK_HUAWEI_hdr_vivid"
+
+-- No documentation found for TopLevel "VK_HUAWEI_HDR_VIVID_EXTENSION_NAME"
+pattern HUAWEI_HDR_VIVID_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern HUAWEI_HDR_VIVID_EXTENSION_NAME = "VK_HUAWEI_hdr_vivid"
+
diff --git a/src/Vulkan/Extensions/VK_HUAWEI_hdr_vivid.hs-boot b/src/Vulkan/Extensions/VK_HUAWEI_hdr_vivid.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_HUAWEI_hdr_vivid.hs-boot
@@ -0,0 +1,130 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_HUAWEI_hdr_vivid - device extension
+--
+-- = VK_HUAWEI_hdr_vivid
+--
+-- [__Name String__]
+--     @VK_HUAWEI_hdr_vivid@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     591
+--
+-- [__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 Vulkan Version 1.1>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_hdr_metadata VK_EXT_hdr_metadata>
+--
+-- [__Contact__]
+--
+--     -   Zehui Lin
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_HUAWEI_hdr_vivid] @bactlink%0A*Here describe the issue or question you have about the VK_HUAWEI_hdr_vivid extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-10-08
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Juntao Li, Huawei
+--
+--     -   Pan Gao, Huawei
+--
+--     -   Xiufeng Zhang, Huawei
+--
+--     -   Zehui Lin, Huawei
+--
+-- == Description
+--
+-- This extension allows applications to assign HDR Vivid (T\/UWA
+-- 005.1-2022) metadata to swapchains.
+--
+-- HDR Vivid is an HDR standard released by UWA (UHD World Association). It
+-- defines tone mapping from the metadata to better preserve the creator’s
+-- intentions and achieve better consistency across devices with different
+-- display capabilities.
+--
+-- == New Structures
+--
+-- -   Extending 'Vulkan.Extensions.VK_EXT_hdr_metadata.HdrMetadataEXT':
+--
+--     -   'HdrVividDynamicMetadataHUAWEI'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceHdrVividFeaturesHUAWEI'
+--
+-- == New Enum Constants
+--
+-- -   'HUAWEI_HDR_VIVID_EXTENSION_NAME'
+--
+-- -   'HUAWEI_HDR_VIVID_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-10-08 (Zehui Lin)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_hdr_vivid 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_hdr_vivid  ( HdrVividDynamicMetadataHUAWEI
+                                              , PhysicalDeviceHdrVividFeaturesHUAWEI
+                                              ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data HdrVividDynamicMetadataHUAWEI
+
+instance ToCStruct HdrVividDynamicMetadataHUAWEI
+instance Show HdrVividDynamicMetadataHUAWEI
+
+instance FromCStruct HdrVividDynamicMetadataHUAWEI
+
+
+data PhysicalDeviceHdrVividFeaturesHUAWEI
+
+instance ToCStruct PhysicalDeviceHdrVividFeaturesHUAWEI
+instance Show PhysicalDeviceHdrVividFeaturesHUAWEI
+
+instance FromCStruct PhysicalDeviceHdrVividFeaturesHUAWEI
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_HUAWEI_invocation_mask - device extension
 --
--- == VK_HUAWEI_invocation_mask
+-- = VK_HUAWEI_invocation_mask
 --
 -- [__Name String__]
 --     @VK_HUAWEI_invocation_mask@
@@ -23,7 +23,11 @@
 -- [__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
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -142,8 +146,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceInvocationMaskFeaturesHUAWEI',
--- 'cmdBindInvocationMaskHUAWEI'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -311,9 +314,8 @@
                                -- recorded
                                CommandBuffer
                             -> -- | @imageView@ is an image view handle specifying the invocation mask image
-                               -- @imageView@ /may/ be set to 'Vulkan.Core10.APIConstants.NULL_HANDLE',
-                               -- which is equivalent to specifying a view of an image filled with ones
-                               -- value.
+                               -- @imageView@ /may/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE', which is
+                               -- equivalent to specifying a view of an image filled with ones value.
                                ImageView
                             -> -- | @imageLayout@ is the layout that the image subresources accessible from
                                -- @imageView@ will be in when the invocation mask image is accessed
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
@@ -3,7 +3,7 @@
 --
 -- VK_HUAWEI_invocation_mask - device extension
 --
--- == VK_HUAWEI_invocation_mask
+-- = VK_HUAWEI_invocation_mask
 --
 -- [__Name String__]
 --     @VK_HUAWEI_invocation_mask@
@@ -23,7 +23,11 @@
 -- [__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
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -142,8 +146,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceInvocationMaskFeaturesHUAWEI',
--- 'cmdBindInvocationMaskHUAWEI'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_HUAWEI_subpass_shading - device extension
 --
--- == VK_HUAWEI_subpass_shading
+-- = VK_HUAWEI_subpass_shading
 --
 -- [__Name String__]
 --     @VK_HUAWEI_subpass_shading@
@@ -21,9 +21,16 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -42,7 +49,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/huawei/GLSL_HUAWEI_subpass_shading.txt GL_HUAWEI_subpass_shading>.
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/huawei/GLSL_HUAWEI_subpass_shading.txt GL_HUAWEI_subpass_shading>.
 --
 -- [__Contributors__]
 --
@@ -342,10 +349,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceSubpassShadingFeaturesHUAWEI',
--- 'PhysicalDeviceSubpassShadingPropertiesHUAWEI',
--- 'SubpassShadingPipelineCreateInfoHUAWEI', 'cmdSubpassShadingHUAWEI',
--- 'getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -440,8 +444,6 @@
 --
 --     -   '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'
@@ -471,7 +473,7 @@
                                                  -- @renderpass@ /must/ have been created, allocated, or retrieved from
                                                  -- @device@
                                                  RenderPass
-                                              -> io (Result, ("maxWorkgroupSize" ::: Extent2D))
+                                              -> io (("maxWorkgroupSize" ::: Extent2D))
 getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI device
                                                 renderpass = liftIO . evalContT $ do
   let vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIPtr = pVkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI (case device of Device{deviceCmds} -> deviceCmds)
@@ -485,7 +487,7 @@
                                                                                     (pPMaxWorkgroupSize))
   lift $ when (r < SUCCESS) (throwIO (VulkanException r))
   pMaxWorkgroupSize <- lift $ peekCStruct @Extent2D pPMaxWorkgroupSize
-  pure $ (r, pMaxWorkgroupSize)
+  pure $ (pMaxWorkgroupSize)
 
 
 foreign import ccall
@@ -507,17 +509,34 @@
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-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
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-vkCmdSubpassShadingHUAWEI-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-mipmapMode-04770# If a
 --     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
 --     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
@@ -525,6 +544,35 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
 --
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-mipmapMode-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-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>,
@@ -592,7 +640,7 @@
 --     '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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-cubicRangeClamp 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
@@ -609,7 +657,7 @@
 --     '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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-selectableCubicWeights 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
@@ -681,6 +729,13 @@
 --     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-None-10068# For each array of
+--     resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
 -- -   #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
@@ -760,9 +815,9 @@
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-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
+--     specified statically in the 'Vulkan.Core10.Handles.Pipeline' object
+--     bound to the pipeline bind point used by this command, since that
+--     pipeline was bound
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08609# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
@@ -802,11 +857,11 @@
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-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
+--     feature 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-vkCmdSubpassShadingHUAWEI-uniformBuffers-06935# If any stage
 --     of the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
@@ -878,7 +933,7 @@
 --     '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 ???>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-image-dimensions ???>
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-format-07753# If a
 --     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
@@ -1032,7 +1087,7 @@
 --     @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.
+--     the image view’s format /must/ be a single-component format
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09217# If a
 --     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
@@ -1044,7 +1099,19 @@
 --     executed by this command /must/
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>
 --
--- -   #VUID-vkCmdSubpassShadingHUAWEI-None-04931# This command must be
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-None-09600# If a descriptor with
+--     type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-None-04931# This command /must/ be
 --     called in a subpass with bind point
 --     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI'.
 --     No draw commands can be called in the same subpass. Only one
@@ -1129,6 +1196,9 @@
     -- See
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>
     -- for more information.
+    --
+    -- #VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-renderPass-parameter#
+    -- @renderPass@ /must/ be a valid 'Vulkan.Core10.Handles.RenderPass' handle
     renderPass :: RenderPass
   , -- | @subpass@ is the index of the subpass in the render pass where this
     -- pipeline will be used.
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
@@ -3,7 +3,7 @@
 --
 -- VK_HUAWEI_subpass_shading - device extension
 --
--- == VK_HUAWEI_subpass_shading
+-- = VK_HUAWEI_subpass_shading
 --
 -- [__Name String__]
 --     @VK_HUAWEI_subpass_shading@
@@ -21,9 +21,16 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -42,7 +49,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/huawei/GLSL_HUAWEI_subpass_shading.txt GL_HUAWEI_subpass_shading>.
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/huawei/GLSL_HUAWEI_subpass_shading.txt GL_HUAWEI_subpass_shading>.
 --
 -- [__Contributors__]
 --
@@ -342,10 +349,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceSubpassShadingFeaturesHUAWEI',
--- 'PhysicalDeviceSubpassShadingPropertiesHUAWEI',
--- 'SubpassShadingPipelineCreateInfoHUAWEI', 'cmdSubpassShadingHUAWEI',
--- 'getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_IMG_filter_cubic - device extension
 --
--- == VK_IMG_filter_cubic
+-- = VK_IMG_filter_cubic
 --
 -- [__Name String__]
 --     @VK_IMG_filter_cubic@
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
@@ -3,7 +3,7 @@
 --
 -- VK_IMG_format_pvrtc - device extension
 --
--- == VK_IMG_format_pvrtc
+-- = VK_IMG_format_pvrtc
 --
 -- [__Name String__]
 --     @VK_IMG_format_pvrtc@
@@ -48,6 +48,10 @@
 -- @VK_IMG_format_pvrtc@ provides additional texture compression
 -- functionality specific to Imagination Technologies PowerVR Texture
 -- compression format (called PVRTC).
+--
+-- As also noted in the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#data-format Khronos Data Format Specification>,
+-- PVRTC1 images must have dimensions that are a power of two.
 --
 -- == Deprecation
 --
diff --git a/src/Vulkan/Extensions/VK_IMG_relaxed_line_rasterization.hs b/src/Vulkan/Extensions/VK_IMG_relaxed_line_rasterization.hs
--- a/src/Vulkan/Extensions/VK_IMG_relaxed_line_rasterization.hs
+++ b/src/Vulkan/Extensions/VK_IMG_relaxed_line_rasterization.hs
@@ -3,7 +3,7 @@
 --
 -- VK_IMG_relaxed_line_rasterization - device extension
 --
--- == VK_IMG_relaxed_line_rasterization
+-- = VK_IMG_relaxed_line_rasterization
 --
 -- [__Name String__]
 --     @VK_IMG_relaxed_line_rasterization@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -91,7 +91,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRelaxedLineRasterizationFeaturesIMG'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_IMG_relaxed_line_rasterization.hs-boot b/src/Vulkan/Extensions/VK_IMG_relaxed_line_rasterization.hs-boot
--- a/src/Vulkan/Extensions/VK_IMG_relaxed_line_rasterization.hs-boot
+++ b/src/Vulkan/Extensions/VK_IMG_relaxed_line_rasterization.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_IMG_relaxed_line_rasterization - device extension
 --
--- == VK_IMG_relaxed_line_rasterization
+-- = VK_IMG_relaxed_line_rasterization
 --
 -- [__Name String__]
 --     @VK_IMG_relaxed_line_rasterization@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -91,7 +91,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRelaxedLineRasterizationFeaturesIMG'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_INTEL_performance_query - device extension
 --
--- == VK_INTEL_performance_query
+-- = VK_INTEL_performance_query
 --
 -- [__Name String__]
 --     @VK_INTEL_performance_query@
@@ -49,13 +49,13 @@
 -- == Description
 --
 -- This extension allows an application to capture performance data to be
--- interpreted by a external application or library.
+-- interpreted by an external application or library.
 --
 -- Such a library is available at :
 -- <https://github.com/intel/metrics-discovery>
 --
 -- Performance analysis tools such as
--- <https://software.intel.com/content/www/us/en/develop/tools/graphics-performance-analyzers.html Graphics Performance Analyzers>
+-- <https://www.intel.com/content/www/us/en/developer/tools/graphics-performance-analyzers/overview.html Graphics Performance Analyzers>
 -- make use of this extension and the metrics-discovery library to present
 -- the data in a human readable way.
 --
@@ -295,22 +295,7 @@
 --
 -- == See Also
 --
--- 'InitializePerformanceApiInfoINTEL',
--- 'PerformanceConfigurationAcquireInfoINTEL',
--- 'Vulkan.Extensions.Handles.PerformanceConfigurationINTEL',
--- 'PerformanceConfigurationTypeINTEL', 'PerformanceMarkerInfoINTEL',
--- 'PerformanceOverrideInfoINTEL', 'PerformanceOverrideTypeINTEL',
--- 'PerformanceParameterTypeINTEL', 'PerformanceStreamMarkerInfoINTEL',
--- 'PerformanceValueDataINTEL', 'PerformanceValueINTEL',
--- 'PerformanceValueTypeINTEL', 'QueryPoolCreateInfoINTEL',
--- 'QueryPoolPerformanceQueryCreateInfoINTEL',
--- 'QueryPoolSamplingModeINTEL', 'acquirePerformanceConfigurationINTEL',
--- 'cmdSetPerformanceMarkerINTEL', 'cmdSetPerformanceOverrideINTEL',
--- 'cmdSetPerformanceStreamMarkerINTEL', 'getPerformanceParameterINTEL',
--- 'initializePerformanceApiINTEL',
--- 'queueSetPerformanceConfigurationINTEL',
--- 'releasePerformanceConfigurationINTEL',
--- 'uninitializePerformanceApiINTEL'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -554,7 +539,7 @@
 
 -- | vkCmdSetPerformanceMarkerINTEL - Markers
 --
--- = Parameters
+-- = Description
 --
 -- The last marker set onto a command buffer before the end of a query will
 -- be part of the query result.
@@ -704,9 +689,11 @@
 -- 'PerformanceStreamMarkerInfoINTEL'
 cmdSetPerformanceStreamMarkerINTEL :: forall io
                                     . (MonadIO io)
-                                   => -- No documentation found for Nested "vkCmdSetPerformanceStreamMarkerINTEL" "commandBuffer"
+                                   => -- | @commandBuffer@ is a 'Vulkan.Core10.Handles.CommandBuffer' into which a
+                                      -- stream marker is added.
                                       CommandBuffer
-                                   -> -- No documentation found for Nested "vkCmdSetPerformanceStreamMarkerINTEL" "pMarkerInfo"
+                                   -> -- | @pMarkerInfo@ is a pointer to a 'PerformanceStreamMarkerInfoINTEL'
+                                      -- structure describing the marker to insert.
                                       PerformanceStreamMarkerInfoINTEL
                                    -> io ()
 cmdSetPerformanceStreamMarkerINTEL commandBuffer
@@ -1077,15 +1064,6 @@
 
 -- | VkPerformanceValueINTEL - Container for value and types of parameters
 -- that can be queried
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkPerformanceValueINTEL-type-parameter# @type@ /must/ be a
---     valid 'PerformanceValueTypeINTEL' value
---
--- -   #VUID-VkPerformanceValueINTEL-valueString-parameter# If @type@ is
---     'PERFORMANCE_VALUE_TYPE_STRING_INTEL', the @valueString@ member of
---     @data@ /must/ be a null-terminated UTF-8 string
 --
 -- = See Also
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_INTEL_performance_query - device extension
 --
--- == VK_INTEL_performance_query
+-- = VK_INTEL_performance_query
 --
 -- [__Name String__]
 --     @VK_INTEL_performance_query@
@@ -49,13 +49,13 @@
 -- == Description
 --
 -- This extension allows an application to capture performance data to be
--- interpreted by a external application or library.
+-- interpreted by an external application or library.
 --
 -- Such a library is available at :
 -- <https://github.com/intel/metrics-discovery>
 --
 -- Performance analysis tools such as
--- <https://software.intel.com/content/www/us/en/develop/tools/graphics-performance-analyzers.html Graphics Performance Analyzers>
+-- <https://www.intel.com/content/www/us/en/developer/tools/graphics-performance-analyzers/overview.html Graphics Performance Analyzers>
 -- make use of this extension and the metrics-discovery library to present
 -- the data in a human readable way.
 --
@@ -295,22 +295,7 @@
 --
 -- == See Also
 --
--- 'InitializePerformanceApiInfoINTEL',
--- 'PerformanceConfigurationAcquireInfoINTEL',
--- 'Vulkan.Extensions.Handles.PerformanceConfigurationINTEL',
--- 'PerformanceConfigurationTypeINTEL', 'PerformanceMarkerInfoINTEL',
--- 'PerformanceOverrideInfoINTEL', 'PerformanceOverrideTypeINTEL',
--- 'PerformanceParameterTypeINTEL', 'PerformanceStreamMarkerInfoINTEL',
--- 'PerformanceValueDataINTEL', 'PerformanceValueINTEL',
--- 'PerformanceValueTypeINTEL', 'QueryPoolCreateInfoINTEL',
--- 'QueryPoolPerformanceQueryCreateInfoINTEL',
--- 'QueryPoolSamplingModeINTEL', 'acquirePerformanceConfigurationINTEL',
--- 'cmdSetPerformanceMarkerINTEL', 'cmdSetPerformanceOverrideINTEL',
--- 'cmdSetPerformanceStreamMarkerINTEL', 'getPerformanceParameterINTEL',
--- 'initializePerformanceApiINTEL',
--- 'queueSetPerformanceConfigurationINTEL',
--- 'releasePerformanceConfigurationINTEL',
--- 'uninitializePerformanceApiINTEL'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_INTEL_shader_integer_functions2 - device extension
 --
--- == VK_INTEL_shader_integer_functions2
+-- = VK_INTEL_shader_integer_functions2
 --
 -- [__Name String__]
 --     @VK_INTEL_shader_integer_functions2@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -92,7 +94,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_INTEL_shader_integer_functions2 - device extension
 --
--- == VK_INTEL_shader_integer_functions2
+-- = VK_INTEL_shader_integer_functions2
 --
 -- [__Name String__]
 --     @VK_INTEL_shader_integer_functions2@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -92,7 +94,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_16bit_storage - device extension
 --
--- == VK_KHR_16bit_storage
+-- = VK_KHR_16bit_storage
 --
 -- [__Name String__]
 --     @VK_KHR_16bit_storage@
@@ -21,9 +21,13 @@
 --     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
+--          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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -50,7 +54,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_16bit_storage.txt GL_EXT_shader_16bit_storage>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GL_EXT_shader_16bit_storage.txt GL_EXT_shader_16bit_storage>
 --
 -- [__Contributors__]
 --
@@ -87,8 +91,8 @@
 -- All functionality in this extension is included in core Vulkan 1.1, with
 -- the KHR suffix omitted. However, if Vulkan 1.1 is supported and this
 -- extension is not, the @storageBuffer16BitAccess@ capability is optional.
--- The original type, enum and command names are still available as aliases
--- of the core functionality.
+-- The original type, enum, and command names are still available as
+-- aliases of the core functionality.
 --
 -- == New Structures
 --
@@ -126,7 +130,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevice16BitStorageFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_8bit_storage - device extension
 --
--- == VK_KHR_8bit_storage
+-- = VK_KHR_8bit_storage
 --
 -- [__Name String__]
 --     @VK_KHR_8bit_storage@
@@ -21,9 +21,13 @@
 --     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
+--          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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -47,7 +51,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_16bit_storage.txt GL_EXT_shader_16bit_storage>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GL_EXT_shader_16bit_storage.txt GL_EXT_shader_16bit_storage>
 --
 -- [__IP Status__]
 --     No known IP claims.
@@ -70,11 +74,12 @@
 --
 -- == Promotion to Vulkan 1.2
 --
--- Functionality in this extension is included in core Vulkan 1.2, with the
+-- Vulkan APIs in this extension are included in core Vulkan 1.2, with the
 -- KHR suffix omitted. However, if Vulkan 1.2 is supported and this
 -- extension is not, the @StorageBuffer8BitAccess@ capability is optional.
--- The original type, enum and command names are still available as aliases
--- of the core functionality.
+-- External interactions defined by this extension, such as SPIR-V token
+-- names, retain their original names. The original Vulkan API names are
+-- still available as aliases of the core functionality.
 --
 -- == New Structures
 --
@@ -110,7 +115,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevice8BitStorageFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_acceleration_structure - device extension
 --
--- == VK_KHR_acceleration_structure
+-- = VK_KHR_acceleration_structure
 --
 -- [__Name String__]
 --     @VK_KHR_acceleration_structure@
@@ -21,16 +21,26 @@
 --     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#versions-1.1 Vulkan Version 1.1>
+--              and
+--             
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_indexing VK_EXT_descriptor_indexing>
---     and
+--              and
+--             
 --     <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#versions-1.2 Vulkan Version 1.2>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_deferred_host_operations VK_KHR_deferred_host_operations>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_2
+--
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_EXT_debug_report
 --
 --     -   Interacts with VK_KHR_format_feature_flags2
@@ -294,6 +304,12 @@
 --
 --     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR'
 --
+-- -   Extending 'CopyAccelerationStructureModeKHR':
+--
+--     -   'COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR'
+--
+--     -   'COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR'
+--
 -- -   Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':
 --
 --     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR'
@@ -365,6 +381,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending
@@ -1114,48 +1132,7 @@
 --
 -- == See Also
 --
--- 'AabbPositionsKHR', 'AccelerationStructureBuildGeometryInfoKHR',
--- 'AccelerationStructureBuildRangeInfoKHR',
--- 'AccelerationStructureBuildSizesInfoKHR',
--- 'AccelerationStructureBuildTypeKHR',
--- 'AccelerationStructureCompatibilityKHR',
--- 'AccelerationStructureCreateFlagBitsKHR',
--- 'AccelerationStructureCreateFlagsKHR',
--- 'AccelerationStructureCreateInfoKHR',
--- 'AccelerationStructureDeviceAddressInfoKHR',
--- 'AccelerationStructureGeometryAabbsDataKHR',
--- 'AccelerationStructureGeometryDataKHR',
--- 'AccelerationStructureGeometryInstancesDataKHR',
--- 'AccelerationStructureGeometryKHR',
--- 'AccelerationStructureGeometryTrianglesDataKHR',
--- 'AccelerationStructureInstanceKHR',
--- 'Vulkan.Extensions.Handles.AccelerationStructureKHR',
--- 'AccelerationStructureTypeKHR', 'AccelerationStructureVersionInfoKHR',
--- 'BuildAccelerationStructureFlagBitsKHR',
--- 'BuildAccelerationStructureFlagsKHR',
--- 'BuildAccelerationStructureModeKHR', 'CopyAccelerationStructureInfoKHR',
--- 'CopyAccelerationStructureModeKHR',
--- 'CopyAccelerationStructureToMemoryInfoKHR',
--- 'CopyMemoryToAccelerationStructureInfoKHR',
--- 'DeviceOrHostAddressConstKHR', 'DeviceOrHostAddressKHR',
--- 'GeometryFlagBitsKHR', 'GeometryFlagsKHR',
--- 'GeometryInstanceFlagBitsKHR', 'GeometryInstanceFlagsKHR',
--- 'GeometryTypeKHR', 'PhysicalDeviceAccelerationStructureFeaturesKHR',
--- 'PhysicalDeviceAccelerationStructurePropertiesKHR',
--- 'TransformMatrixKHR', 'WriteDescriptorSetAccelerationStructureKHR',
--- 'buildAccelerationStructuresKHR',
--- 'cmdBuildAccelerationStructuresIndirectKHR',
--- 'cmdBuildAccelerationStructuresKHR', 'cmdCopyAccelerationStructureKHR',
--- 'cmdCopyAccelerationStructureToMemoryKHR',
--- 'cmdCopyMemoryToAccelerationStructureKHR',
--- 'cmdWriteAccelerationStructuresPropertiesKHR',
--- 'copyAccelerationStructureKHR', 'copyAccelerationStructureToMemoryKHR',
--- 'copyMemoryToAccelerationStructureKHR',
--- 'createAccelerationStructureKHR', 'destroyAccelerationStructureKHR',
--- 'getAccelerationStructureBuildSizesKHR',
--- 'getAccelerationStructureDeviceAddressKHR',
--- 'getDeviceAccelerationStructureCompatibilityKHR',
--- 'writeAccelerationStructuresPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -1240,8 +1217,8 @@
                                                                                                 )
                                                         , CopyAccelerationStructureModeKHR( COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
                                                                                           , COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR
-                                                                                          , COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR
                                                                                           , COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
+                                                                                          , COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR
                                                                                           , ..
                                                                                           )
                                                         , BuildAccelerationStructureModeKHR( BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR
@@ -1657,6 +1634,7 @@
 -- -   #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-deferredOperation-03678# Any
 --     previous deferred operation that was associated with
@@ -1667,7 +1645,6 @@
 --
 -- -   #VUID-vkCopyAccelerationStructureKHR-buffer-03728# The @buffer@ used
 --     to create @pInfo->dst@ /must/ be bound to host-visible device memory
---     feature /must/ be enabled
 --
 -- -   #VUID-vkCopyAccelerationStructureKHR-buffer-03780# The @buffer@ used
 --     to create @pInfo->src@ /must/ be bound to memory that was not
@@ -2623,8 +2600,8 @@
                                             QueryType
                                          -> -- | @dataSize@ is the size in bytes of the buffer pointed to by @pData@.
                                             ("dataSize" ::: Word64)
-                                         -> -- | @pData@ is a pointer to a user-allocated buffer where the results will
-                                            -- be written.
+                                         -> -- | @pData@ is a pointer to an application-allocated buffer where the
+                                            -- results will be written.
                                             ("data" ::: Ptr ())
                                          -> -- | @stride@ is the stride in bytes between results for individual queries
                                             -- within @pData@.
@@ -2736,8 +2713,6 @@
 -- '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
@@ -2748,8 +2723,6 @@
 -- 'cmdCopyMemoryToAccelerationStructureKHR' with a @mode@ of
 -- 'COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR' during replay.
 --
--- Note
---
 -- Memory does not need to be bound to the underlying buffer when
 -- 'createAccelerationStructureKHR' is called.
 --
@@ -2884,8 +2857,6 @@
 -- ordering or synchronization implied between any of the individual
 -- acceleration structure builds.
 --
--- Note
---
 -- This means that an application /cannot/ build a top-level acceleration
 -- structure in the same 'cmdBuildAccelerationStructuresKHR' call as the
 -- associated bottom-level or instance acceleration structures are being
@@ -3171,16 +3142,6 @@
 --     structure /must/ have the same value which was specified when
 --     @srcAccelerationStructure@ was last built
 --
--- -   #VUID-vkCmdBuildAccelerationStructuresKHR-firstVertex-03770# For
---     each element of @pInfos@, if its @mode@ member is
---     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', then for each
---     'AccelerationStructureGeometryKHR' structure referred to by its
---     @pGeometries@ or @ppGeometries@ members, if the geometry uses
---     indices, the @firstVertex@ member of its corresponding
---     'AccelerationStructureBuildRangeInfoKHR' structure /must/ have the
---     same value which was specified when @srcAccelerationStructure@ was
---     last built
---
 -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03801# For each
 --     element of @pInfos@[i].@pGeometries@ or @pInfos@[i].@ppGeometries@
 --     with a @geometryType@ of 'GEOMETRY_TYPE_INSTANCES_KHR', the
@@ -3392,16 +3353,22 @@
 -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-09547#
 --     @commandBuffer@ /must/ not be a protected command buffer
 --
--- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03675# For each
+-- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-10126# For each
 --     @pInfos@[i], @dstAccelerationStructure@ /must/ have been created
 --     with a value of 'AccelerationStructureCreateInfoKHR'::@size@ greater
---     than or equal to the memory size required by the build operation, as
---     returned by 'getAccelerationStructureBuildSizesKHR' with
---     @pBuildInfo@ = @pInfos@[i] and with each element of the
---     @pMaxPrimitiveCounts@ array greater than or equal to the equivalent
---     @ppBuildRangeInfos@[i][j].@primitiveCount@ values for @j@ in
---     [0,@pInfos@[i].@geometryCount@)
+--     than or equal to either:
 --
+--     -   the memory size required by the build operation, as returned by
+--         'getAccelerationStructureBuildSizesKHR' with @pBuildInfo@ =
+--         @pInfos@[i] and with each element of the @pMaxPrimitiveCounts@
+--         array greater than or equal to the equivalent
+--         @ppBuildRangeInfos@[i][j].@primitiveCount@ values for @j@ in
+--         [0,@pInfos@[i].@geometryCount@) or,
+--
+--     -   the result of querying the corresponding
+--         'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR',
+--         if updating a compacted acceleration structure
+--
 -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676#
 --     Each element of @ppBuildRangeInfos@[i] /must/ be a valid pointer to
 --     an array of @pInfos@[i].@geometryCount@
@@ -3517,7 +3484,7 @@
 -- = Description
 --
 -- Accesses to acceleration structures, scratch buffers, vertex buffers,
--- index buffers, and instance buffers must be synchronized as with
+-- index buffers, and instance buffers /must/ be synchronized as with
 -- 'cmdBuildAccelerationStructuresKHR'.
 --
 -- Accesses to any element of @pIndirectDeviceAddresses@ /must/ be
@@ -3763,16 +3730,6 @@
 --     structure /must/ have the same value which was specified when
 --     @srcAccelerationStructure@ was last built
 --
--- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-firstVertex-03770#
---     For each element of @pInfos@, if its @mode@ member is
---     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', then for each
---     'AccelerationStructureGeometryKHR' structure referred to by its
---     @pGeometries@ or @ppGeometries@ members, if the geometry uses
---     indices, the @firstVertex@ member of its corresponding
---     'AccelerationStructureBuildRangeInfoKHR' structure /must/ have the
---     same value which was specified when @srcAccelerationStructure@ was
---     last built
---
 -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03801# For
 --     each element of @pInfos@[i].@pGeometries@ or
 --     @pInfos@[i].@ppGeometries@ with a @geometryType@ of
@@ -4189,8 +4146,6 @@
 -- ordering or synchronization implied between any of the individual
 -- acceleration structure builds.
 --
--- Note
---
 -- This means that an application /cannot/ build a top-level acceleration
 -- structure in the same 'buildAccelerationStructuresKHR' call as the
 -- associated bottom-level or instance acceleration structures are being
@@ -4431,16 +4386,6 @@
 --     structure /must/ have the same value which was specified when
 --     @srcAccelerationStructure@ was last built
 --
--- -   #VUID-vkBuildAccelerationStructuresKHR-firstVertex-03770# For each
---     element of @pInfos@, if its @mode@ member is
---     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', then for each
---     'AccelerationStructureGeometryKHR' structure referred to by its
---     @pGeometries@ or @ppGeometries@ members, if the geometry uses
---     indices, the @firstVertex@ member of its corresponding
---     'AccelerationStructureBuildRangeInfoKHR' structure /must/ have the
---     same value which was specified when @srcAccelerationStructure@ was
---     last built
---
 -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03801# For each
 --     element of @pInfos@[i].@pGeometries@ or @pInfos@[i].@ppGeometries@
 --     with a @geometryType@ of 'GEOMETRY_TYPE_INSTANCES_KHR', the
@@ -4448,16 +4393,22 @@
 --     less than or equal to
 --     'PhysicalDeviceAccelerationStructurePropertiesKHR'::@maxInstanceCount@
 --
--- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03675# For each
+-- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-10126# For each
 --     @pInfos@[i], @dstAccelerationStructure@ /must/ have been created
 --     with a value of 'AccelerationStructureCreateInfoKHR'::@size@ greater
---     than or equal to the memory size required by the build operation, as
---     returned by 'getAccelerationStructureBuildSizesKHR' with
---     @pBuildInfo@ = @pInfos@[i] and with each element of the
---     @pMaxPrimitiveCounts@ array greater than or equal to the equivalent
---     @ppBuildRangeInfos@[i][j].@primitiveCount@ values for @j@ in
---     [0,@pInfos@[i].@geometryCount@)
+--     than or equal to either:
 --
+--     -   the memory size required by the build operation, as returned by
+--         'getAccelerationStructureBuildSizesKHR' with @pBuildInfo@ =
+--         @pInfos@[i] and with each element of the @pMaxPrimitiveCounts@
+--         array greater than or equal to the equivalent
+--         @ppBuildRangeInfos@[i][j].@primitiveCount@ values for @j@ in
+--         [0,@pInfos@[i].@geometryCount@) or,
+--
+--     -   the result of querying the corresponding
+--         'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR',
+--         if updating a compacted acceleration structure
+--
 -- -   #VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676# Each
 --     element of @ppBuildRangeInfos@[i] /must/ be a valid pointer to an
 --     array of @pInfos@[i].@geometryCount@
@@ -4675,7 +4626,7 @@
   "dynamic" mkVkGetAccelerationStructureDeviceAddressKHR
   :: FunPtr (Ptr Device_T -> Ptr AccelerationStructureDeviceAddressInfoKHR -> IO DeviceAddress) -> Ptr Device_T -> Ptr AccelerationStructureDeviceAddressInfoKHR -> IO DeviceAddress
 
--- | vkGetAccelerationStructureDeviceAddressKHR - Query an address of a
+-- | vkGetAccelerationStructureDeviceAddressKHR - Query an address of an
 -- acceleration structure
 --
 -- = Description
@@ -4699,8 +4650,6 @@
 --
 -- The returned address /must/ be aligned to 256 bytes.
 --
--- Note
---
 -- The acceleration structure device address /may/ be different from the
 -- buffer device address corresponding to the acceleration structure’s
 -- start offset in its storage buffer for acceleration structure types
@@ -5323,8 +5272,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Unlike the stride for vertex buffers in
 -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' for graphics
 -- pipelines which must not exceed @maxVertexInputBindingStride@,
@@ -5398,8 +5345,7 @@
     vertexData :: DeviceOrHostAddressConstKHR
   , -- | @vertexStride@ is the stride in bytes between each vertex.
     vertexStride :: DeviceSize
-  , -- | @maxVertex@ is the highest index of a vertex that will be addressed by a
-    -- build command using this structure.
+  , -- | @maxVertex@ is the number of vertices in @vertexData@ minus one.
     maxVertex :: Word32
   , -- | @indexType@ is the 'Vulkan.Core10.Enums.IndexType.IndexType' of each
     -- index element.
@@ -5848,8 +5794,9 @@
     -- type of operation to perform.
     mode :: BuildAccelerationStructureModeKHR
   , -- | @srcAccelerationStructure@ is a pointer to an existing acceleration
-    -- structure that is to be used to update the @dst@ acceleration structure
-    -- when @mode@ is 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR'.
+    -- structure that is to be used to update the @dstAccelerationStructure@
+    -- acceleration structure when @mode@ is
+    -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR'.
     srcAccelerationStructure :: AccelerationStructureKHR
   , -- | @dstAccelerationStructure@ is a pointer to the target acceleration
     -- structure for the build.
@@ -6065,8 +6012,6 @@
 -- 'Vulkan.Extensions.VK_KHR_buffer_device_address.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR'
 -- errors.
 --
--- Note
---
 -- The expected usage for this is that a trace capture\/replay tool will
 -- add the
 -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT'
@@ -6095,8 +6040,6 @@
 -- 'AccelerationStructureTypeKHR' other than
 -- 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR'.
 --
--- Note
---
 -- 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' is intended to be used by API
 -- translation layers. This can be used at acceleration structure creation
 -- time in cases where the actual acceleration structure type (top or
@@ -6543,8 +6486,8 @@
   { -- | @transform@ is a 'TransformMatrixKHR' structure describing a
     -- transformation to be applied to the acceleration structure.
     transform :: TransformMatrixKHR
-  , -- | @instanceCustomIndex@ is a 24-bit user-specified index value accessible
-    -- to ray shaders in the @InstanceCustomIndexKHR@ built-in.
+  , -- | @instanceCustomIndex@ is a 24-bit application-specified index value
+    -- accessible to ray shaders in the @InstanceCustomIndexKHR@ built-in.
     --
     -- @instanceCustomIndex@ and @mask@ occupy the same memory as if a single
     -- @uint32_t@ was specified in their place
@@ -6574,7 +6517,7 @@
     -- #VUID-VkAccelerationStructureInstanceKHR-flags-parameter# @flags@ /must/
     -- be a valid combination of 'GeometryInstanceFlagBitsKHR' values
     flags :: GeometryInstanceFlagsKHR
-  , -- | @accelerationStructureReference@ is either:
+  , -- | @accelerationStructureReference@ is either :
     --
     -- -   a device address containing the value obtained from
     --     'getAccelerationStructureDeviceAddressKHR' or
@@ -6705,8 +6648,6 @@
 --
 -- = Description
 --
--- Note
---
 -- @pVersionData@ is a /pointer/ to an array of
 -- 2×'Vulkan.Core10.APIConstants.UUID_SIZE' @uint8_t@ values instead of two
 -- 'Vulkan.Core10.APIConstants.UUID_SIZE' arrays as the expected use case
@@ -6795,11 +6736,6 @@
 --     memory backing @dst@ that is accessed by this command /must/ not
 --     overlap the memory backing @src@ that is accessed by this command
 --
--- -   #VUID-VkCopyAccelerationStructureInfoKHR-dst-07792# @dst@ /must/ be
---     bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object via
---     'Vulkan.Extensions.VK_NV_ray_tracing.bindAccelerationStructureMemoryNV'
---
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkCopyAccelerationStructureInfoKHR-sType-sType# @sType@ /must/
@@ -7213,7 +7149,7 @@
 -- culling for this instance.
 pattern GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = GeometryInstanceFlagBitsKHR 0x00000001
 
--- | 'GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR' indicates that the
+-- | 'GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR' specifies that the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-culling-face facing determination>
 -- for geometry in this instance is inverted. Because the facing is
 -- determined in object space, an instance transform does not change the
@@ -7302,11 +7238,11 @@
 newtype GeometryFlagBitsKHR = GeometryFlagBitsKHR Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
--- | 'GEOMETRY_OPAQUE_BIT_KHR' indicates that this geometry does not invoke
+-- | 'GEOMETRY_OPAQUE_BIT_KHR' specifies that this geometry does not invoke
 -- the any-hit shaders even if present in a hit group.
 pattern GEOMETRY_OPAQUE_BIT_KHR = GeometryFlagBitsKHR 0x00000001
 
--- | 'GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR' indicates that the
+-- | 'GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR' specifies that the
 -- implementation /must/ only call the any-hit shader a single time for
 -- each primitive in this geometry. If this bit is absent an implementation
 -- /may/ invoke the any-hit shader more than once for this geometry.
@@ -7351,13 +7287,18 @@
 --
 -- = Description
 --
--- Note
---
 -- 'BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR' and
 -- 'BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR' /may/ take more
 -- time and memory than a normal build, and so /should/ only be used when
 -- those features are needed.
 --
+-- 'BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR' and
+-- 'BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR' are allowed to
+-- be used together. In that case, the result of the compaction copy is
+-- used as the source of a build with @mode@ of
+-- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR' to perform the compacted
+-- update.
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>,
@@ -7366,7 +7307,7 @@
 newtype BuildAccelerationStructureFlagBitsKHR = BuildAccelerationStructureFlagBitsKHR Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
--- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR' indicates that the
+-- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR' specifies that the
 -- specified acceleration structure /can/ be updated with a @mode@ of
 -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR' in
 -- 'AccelerationStructureBuildGeometryInfoKHR' or an @update@ of
@@ -7374,54 +7315,54 @@
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV' .
 pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000001
 
--- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR' indicates that
+-- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR' specifies that
 -- the specified acceleration structure /can/ act as the source for a copy
 -- acceleration structure command with @mode@ of
 -- 'COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR' to produce a compacted
 -- acceleration structure.
 pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000002
 
--- | 'BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR' indicates that
+-- | 'BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR' specifies that
 -- the given acceleration structure build /should/ prioritize trace
 -- performance over build time.
 pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000004
 
--- | 'BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR' indicates that
+-- | 'BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR' specifies that
 -- the given acceleration structure build /should/ prioritize build time
 -- over trace performance.
 pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000008
 
--- | 'BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR' indicates that this
+-- | 'BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR' specifies that this
 -- acceleration structure /should/ minimize the size of the scratch memory
 -- and the final result acceleration structure, potentially at the expense
 -- 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
+-- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR' specifies 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
+-- specifies that the displacement micromaps associated with the specified
 -- acceleration structure /may/ change with an acceleration structure
 -- update.
 pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = BuildAccelerationStructureFlagBitsKHR 0x00000200
 
 -- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT'
--- indicates that the data of the opacity micromaps associated with the
+-- specifies that the data of the opacity micromaps associated with the
 -- specified acceleration structure /may/ change with an acceleration
 -- structure update.
 pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = BuildAccelerationStructureFlagBitsKHR 0x00000100
 
 -- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT'
--- indicates that the specified acceleration structure /may/ be referenced
+-- specifies that the specified acceleration structure /may/ be referenced
 -- in an instance with 'GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT'
 -- set.
 pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = BuildAccelerationStructureFlagBitsKHR 0x00000080
 
 -- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT'
--- indicates that the opacity micromaps associated with the specified
+-- specifies that the opacity micromaps associated with the specified
 -- acceleration structure /may/ change with an acceleration structure
 -- update.
 pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = BuildAccelerationStructureFlagBitsKHR 0x00000040
@@ -7517,7 +7458,10 @@
 -- reused on a subsequent run.
 pattern ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = AccelerationStructureCreateFlagBitsKHR 0x00000001
 
--- No documentation found for Nested "VkAccelerationStructureCreateFlagBitsKHR" "VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV"
+-- | 'ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV' specifies that the
+-- acceleration structure will be used with motion information, see
+-- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInfoNV'
+-- for more detail.
 pattern ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = AccelerationStructureCreateFlagBitsKHR 0x00000004
 
 -- | 'ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'
@@ -7591,28 +7535,30 @@
 -- | 'COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR' creates a more compact
 -- version of an acceleration structure @src@ into @dst@. The acceleration
 -- structure @dst@ /must/ have been created with a size at least as large
--- as that returned by 'cmdWriteAccelerationStructuresPropertiesKHR' or
+-- as that returned by
+-- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV'
+-- , 'cmdWriteAccelerationStructuresPropertiesKHR', or
 -- 'writeAccelerationStructuresPropertiesKHR' after the build of the
 -- acceleration structure specified by @src@. If @src@ contains references
 -- to other acceleration structures, @dst@ will reference the same
 -- acceleration structures.
 pattern COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = CopyAccelerationStructureModeKHR 1
 
--- | 'COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR' serializes the
--- acceleration structure to a semi-opaque format which can be reloaded on
--- a compatible implementation.
-pattern COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = CopyAccelerationStructureModeKHR 2
-
 -- | 'COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR' deserializes the
 -- semi-opaque serialization format in the buffer to the acceleration
 -- structure.
 pattern COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = CopyAccelerationStructureModeKHR 3
 
+-- | 'COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR' serializes the
+-- acceleration structure to a semi-opaque format which can be reloaded on
+-- a compatible implementation.
+pattern COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = CopyAccelerationStructureModeKHR 2
+
 {-# COMPLETE
   COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
   , COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR
-  , COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR
-  , COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR ::
+  , COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
+  , COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR ::
     CopyAccelerationStructureModeKHR
   #-}
 
@@ -7633,12 +7579,12 @@
     , "COMPACT_KHR"
     )
   ,
-    ( COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR
-    , "SERIALIZE_KHR"
-    )
-  ,
     ( COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
     , "DESERIALIZE_KHR"
+    )
+  ,
+    ( COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR
+    , "SERIALIZE_KHR"
     )
   ]
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_acceleration_structure - device extension
 --
--- == VK_KHR_acceleration_structure
+-- = VK_KHR_acceleration_structure
 --
 -- [__Name String__]
 --     @VK_KHR_acceleration_structure@
@@ -21,16 +21,26 @@
 --     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#versions-1.1 Vulkan Version 1.1>
+--              and
+--             
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_indexing VK_EXT_descriptor_indexing>
---     and
+--              and
+--             
 --     <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#versions-1.2 Vulkan Version 1.2>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_deferred_host_operations VK_KHR_deferred_host_operations>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_2
+--
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_EXT_debug_report
 --
 --     -   Interacts with VK_KHR_format_feature_flags2
@@ -294,6 +304,12 @@
 --
 --     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR'
 --
+-- -   Extending 'CopyAccelerationStructureModeKHR':
+--
+--     -   'COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR'
+--
+--     -   'COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR'
+--
 -- -   Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':
 --
 --     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR'
@@ -365,6 +381,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending
@@ -1114,48 +1132,7 @@
 --
 -- == See Also
 --
--- 'AabbPositionsKHR', 'AccelerationStructureBuildGeometryInfoKHR',
--- 'AccelerationStructureBuildRangeInfoKHR',
--- 'AccelerationStructureBuildSizesInfoKHR',
--- 'AccelerationStructureBuildTypeKHR',
--- 'AccelerationStructureCompatibilityKHR',
--- 'AccelerationStructureCreateFlagBitsKHR',
--- 'AccelerationStructureCreateFlagsKHR',
--- 'AccelerationStructureCreateInfoKHR',
--- 'AccelerationStructureDeviceAddressInfoKHR',
--- 'AccelerationStructureGeometryAabbsDataKHR',
--- 'AccelerationStructureGeometryDataKHR',
--- 'AccelerationStructureGeometryInstancesDataKHR',
--- 'AccelerationStructureGeometryKHR',
--- 'AccelerationStructureGeometryTrianglesDataKHR',
--- 'AccelerationStructureInstanceKHR',
--- 'Vulkan.Extensions.Handles.AccelerationStructureKHR',
--- 'AccelerationStructureTypeKHR', 'AccelerationStructureVersionInfoKHR',
--- 'BuildAccelerationStructureFlagBitsKHR',
--- 'BuildAccelerationStructureFlagsKHR',
--- 'BuildAccelerationStructureModeKHR', 'CopyAccelerationStructureInfoKHR',
--- 'CopyAccelerationStructureModeKHR',
--- 'CopyAccelerationStructureToMemoryInfoKHR',
--- 'CopyMemoryToAccelerationStructureInfoKHR',
--- 'DeviceOrHostAddressConstKHR', 'DeviceOrHostAddressKHR',
--- 'GeometryFlagBitsKHR', 'GeometryFlagsKHR',
--- 'GeometryInstanceFlagBitsKHR', 'GeometryInstanceFlagsKHR',
--- 'GeometryTypeKHR', 'PhysicalDeviceAccelerationStructureFeaturesKHR',
--- 'PhysicalDeviceAccelerationStructurePropertiesKHR',
--- 'TransformMatrixKHR', 'WriteDescriptorSetAccelerationStructureKHR',
--- 'buildAccelerationStructuresKHR',
--- 'cmdBuildAccelerationStructuresIndirectKHR',
--- 'cmdBuildAccelerationStructuresKHR', 'cmdCopyAccelerationStructureKHR',
--- 'cmdCopyAccelerationStructureToMemoryKHR',
--- 'cmdCopyMemoryToAccelerationStructureKHR',
--- 'cmdWriteAccelerationStructuresPropertiesKHR',
--- 'copyAccelerationStructureKHR', 'copyAccelerationStructureToMemoryKHR',
--- 'copyMemoryToAccelerationStructureKHR',
--- 'createAccelerationStructureKHR', 'destroyAccelerationStructureKHR',
--- 'getAccelerationStructureBuildSizesKHR',
--- 'getAccelerationStructureDeviceAddressKHR',
--- 'getDeviceAccelerationStructureCompatibilityKHR',
--- 'writeAccelerationStructuresPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_android_surface - instance extension
 --
--- == VK_KHR_android_surface
+-- = VK_KHR_android_surface
 --
 -- [__Name String__]
 --     @VK_KHR_android_surface@
@@ -149,8 +149,7 @@
 --
 -- == See Also
 --
--- 'ANativeWindow', 'AndroidSurfaceCreateFlagsKHR',
--- 'AndroidSurfaceCreateInfoKHR', 'createAndroidSurfaceKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -247,8 +246,6 @@
 -- same 'ANativeWindow' and any attempts to connect to the same
 -- 'ANativeWindow' through other platform mechanisms will fail.
 --
--- Note
---
 -- In particular, only one 'Vulkan.Extensions.Handles.SurfaceKHR' /can/
 -- exist at a time for a given window. Similarly, a native window /cannot/
 -- be used by both a 'Vulkan.Extensions.Handles.SurfaceKHR' and
@@ -410,7 +407,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_android_surface VK_KHR_android_surface>,
--- 'AndroidSurfaceCreateInfoKHR'
+-- 'AndroidSurfaceCreateInfoKHR', 'Vulkan.Core10.FundamentalTypes.Flags'
 newtype AndroidSurfaceCreateFlagsKHR = AndroidSurfaceCreateFlagsKHR Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_android_surface - instance extension
 --
--- == VK_KHR_android_surface
+-- = VK_KHR_android_surface
 --
 -- [__Name String__]
 --     @VK_KHR_android_surface@
@@ -149,8 +149,7 @@
 --
 -- == See Also
 --
--- 'ANativeWindow', 'AndroidSurfaceCreateFlagsKHR',
--- 'AndroidSurfaceCreateInfoKHR', 'createAndroidSurfaceKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_bind_memory2 - device extension
 --
--- == VK_KHR_bind_memory2
+-- = VK_KHR_bind_memory2
 --
 -- [__Name String__]
 --     @VK_KHR_bind_memory2@
@@ -61,7 +61,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -101,8 +101,7 @@
 --
 -- == See Also
 --
--- 'BindBufferMemoryInfoKHR', 'BindImageMemoryInfoKHR',
--- 'bindBufferMemory2KHR', 'bindImageMemory2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_buffer_device_address - device extension
 --
--- == VK_KHR_buffer_device_address
+-- = VK_KHR_buffer_device_address
 --
 -- [__Name String__]
 --     @VK_KHR_buffer_device_address@
@@ -27,7 +27,7 @@
 --         
 --     <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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -54,11 +54,11 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference.txt GL_EXT_buffer_reference>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_buffer_reference.txt GL_EXT_buffer_reference>
 --         and
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference2.txt GL_EXT_buffer_reference2>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_buffer_reference2.txt GL_EXT_buffer_reference2>
 --         and
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference_uvec2.txt GL_EXT_buffer_reference_uvec2>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_buffer_reference_uvec2.txt GL_EXT_buffer_reference_uvec2>
 --
 -- [__Contributors__]
 --
@@ -79,7 +79,7 @@
 -- This extension allows the application to query a 64-bit buffer device
 -- address value for a buffer, which can be used to access the buffer
 -- memory via the @PhysicalStorageBuffer@ storage class in the
--- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference.txt GL_EXT_buffer_reference>
+-- <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_buffer_reference.txt GL_EXT_buffer_reference>
 -- GLSL extension and
 -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_physical_storage_buffer.html SPV_KHR_physical_storage_buffer>
 -- SPIR-V extension.
@@ -109,7 +109,7 @@
 -- All functionality in this extension is included in core Vulkan 1.2, with
 -- the KHR suffix omitted. However, if Vulkan 1.2 is supported and this
 -- extension is not, the @bufferDeviceAddress@ feature is optional. The
--- original type, enum and command names are still available as aliases of
+-- original type, enum, and command names are still available as aliases of
 -- the core functionality.
 --
 -- == Promotion to Vulkan 1.3
@@ -196,12 +196,7 @@
 --
 -- == See Also
 --
--- 'BufferDeviceAddressInfoKHR', 'BufferOpaqueCaptureAddressCreateInfoKHR',
--- 'DeviceMemoryOpaqueCaptureAddressInfoKHR',
--- 'MemoryOpaqueCaptureAddressAllocateInfoKHR',
--- 'PhysicalDeviceBufferDeviceAddressFeaturesKHR',
--- 'getBufferDeviceAddressKHR', 'getBufferOpaqueCaptureAddressKHR',
--- 'getDeviceMemoryOpaqueCaptureAddressKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs b/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs
--- a/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs
+++ b/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_calibrated_timestamps - device extension
 --
--- == VK_KHR_calibrated_timestamps
+-- = VK_KHR_calibrated_timestamps
 --
 -- [__Name String__]
 --     @VK_KHR_calibrated_timestamps@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -92,9 +92,7 @@
 --
 -- == See Also
 --
--- 'CalibratedTimestampInfoKHR', 'TimeDomainKHR',
--- 'getCalibratedTimestampsKHR',
--- 'getPhysicalDeviceCalibrateableTimeDomainsKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -197,9 +195,9 @@
 -- If @pTimeDomains@ is @NULL@, then the number of calibrateable time
 -- domains supported for the given @physicalDevice@ is returned in
 -- @pTimeDomainCount@. Otherwise, @pTimeDomainCount@ /must/ point to a
--- variable set by the user to the number of elements in the @pTimeDomains@
--- array, and on return the variable is overwritten with the number of
--- values actually written to @pTimeDomains@. If the value of
+-- variable set by the application to the number of elements in the
+-- @pTimeDomains@ array, and on return the variable is overwritten with the
+-- number of values actually written to @pTimeDomains@. If the value of
 -- @pTimeDomainCount@ is less than the number of calibrateable time domains
 -- supported, at most @pTimeDomainCount@ values will be written to
 -- @pTimeDomains@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be
@@ -280,8 +278,6 @@
 --
 -- = Description
 --
--- Note
---
 -- The maximum deviation /may/ vary between calls to
 -- 'getCalibratedTimestampsKHR' even for the same set of time domains due
 -- to implementation and platform specific reasons. It is the application’s
@@ -300,9 +296,8 @@
 -- == Valid Usage
 --
 -- -   #VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246# The
---     @timeDomain@ value of each
---     'Vulkan.Extensions.VK_EXT_calibrated_timestamps.CalibratedTimestampInfoEXT'
---     in @pTimestampInfos@ /must/ be unique
+--     @timeDomain@ value of each 'CalibratedTimestampInfoKHR' in
+--     @pTimestampInfos@ /must/ be unique
 --
 -- == Valid Usage (Implicit)
 --
@@ -434,8 +429,6 @@
 -- | VkTimeDomainKHR - Supported time domains
 --
 -- = Description
---
--- Note
 --
 -- An implementation supporting @VK_KHR_calibrated_timestamps@ or
 -- @VK_EXT_calibrated_timestamps@ will use the same time domain for all its
diff --git a/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs-boot b/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_calibrated_timestamps - device extension
 --
--- == VK_KHR_calibrated_timestamps
+-- = VK_KHR_calibrated_timestamps
 --
 -- [__Name String__]
 --     @VK_KHR_calibrated_timestamps@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -92,9 +92,7 @@
 --
 -- == See Also
 --
--- 'CalibratedTimestampInfoKHR', 'TimeDomainKHR',
--- 'getCalibratedTimestampsKHR',
--- 'getPhysicalDeviceCalibrateableTimeDomainsKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_compute_shader_derivatives.hs b/src/Vulkan/Extensions/VK_KHR_compute_shader_derivatives.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_compute_shader_derivatives.hs
@@ -0,0 +1,354 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_compute_shader_derivatives - device extension
+--
+-- = VK_KHR_compute_shader_derivatives
+--
+-- [__Name String__]
+--     @VK_KHR_compute_shader_derivatives@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     512
+--
+-- [__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>
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_compute_shader_derivatives.html SPV_KHR_compute_shader_derivatives>
+--
+-- [__Contact__]
+--
+--     -   Jean-Noe Morissette
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_compute_shader_derivatives] @MagicPoncho%0A*Here describe the issue or question you have about the VK_KHR_compute_shader_derivatives extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_compute_shader_derivatives.adoc VK_KHR_compute_shader_derivatives>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-06-26
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_compute_shader_derivatives.html SPV_KHR_compute_shader_derivatives>
+--
+--     -   This extension provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/khr/GLSL_KHR_compute_shader_derivatives.txt GL_KHR_compute_shader_derivatives>
+--
+-- [__Contributors__]
+--
+--     -   Jean-Noe Morissette, Epic Games
+--
+--     -   Daniel Koch, NVIDIA
+--
+--     -   Pat Brown, NVIDIA
+--
+--     -   Stu Smith, AMD
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Ralph Potter, Samsung
+--
+--     -   Pan Gao, Huawei
+--
+--     -   Samuel (Sheng-Wen) Huang, MediaTek
+--
+--     -   Graeme Leese, Broadcom
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Matthew Netsh, Qualcomm
+--
+-- == Description
+--
+-- This extension adds Vulkan support for the
+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_compute_shader_derivatives.html SPV_KHR_compute_shader_derivatives>
+-- SPIR-V extension.
+--
+-- The SPIR-V extension provides two new execution modes, both of which
+-- allow execution models with defined workgroups to use built-ins that
+-- evaluate derivatives explicitly or implicitly. Derivatives will be
+-- computed via differencing over a 2x2 group of shader invocations. The
+-- @DerivativeGroupQuadsKHR@ execution mode assembles shader invocations
+-- into 2x2 groups, where each group has x and y coordinates of the local
+-- invocation ID of the form (2m+{0,1}, 2n+{0,1}). The
+-- @DerivativeGroupLinearKHR@ execution mode assembles shader invocations
+-- into 2x2 groups, where each group has local invocation index values of
+-- the form 4m+{0,1,2,3}.
+--
+-- The new execution modes are supported in compute shaders and optionally
+-- (see
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-meshAndTaskShaderDerivatives meshAndTaskShaderDerivatives>)
+-- in mesh and task shaders.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceComputeShaderDerivativesFeaturesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceComputeShaderDerivativesPropertiesKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME'
+--
+-- -   'KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR'
+--
+-- == New SPIR-V Capability
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsKHR ComputeDerivativeGroupQuadsKHR>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearKHR ComputeDerivativeGroupLinearKHR>
+--
+-- == Examples
+--
+-- None.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-02-27 (Jean-Noe Morissette)
+--
+--     -   Initial draft
+--
+--     -   Add properties and clarify mesh and task support (Daniel Koch)
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_compute_shader_derivatives 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_compute_shader_derivatives  ( PhysicalDeviceComputeShaderDerivativesFeaturesKHR(..)
+                                                            , PhysicalDeviceComputeShaderDerivativesPropertiesKHR(..)
+                                                            , KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION
+                                                            , pattern KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION
+                                                            , KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
+                                                            , pattern KHR_COMPUTE_SHADER_DERIVATIVES_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_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR))
+-- | VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR - Structure
+-- describing compute shader derivative features that can be supported by
+-- an implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- See
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-quad Quad shader scope>
+-- for more information.
+--
+-- If the 'PhysicalDeviceComputeShaderDerivativesFeaturesKHR'. 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. 'PhysicalDeviceComputeShaderDerivativesFeaturesKHR'. /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_compute_shader_derivatives VK_KHR_compute_shader_derivatives>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceComputeShaderDerivativesFeaturesKHR = PhysicalDeviceComputeShaderDerivativesFeaturesKHR
+  { -- | #features-computeDerivativeGroupQuads# @computeDerivativeGroupQuads@
+    -- indicates that the implementation supports the
+    -- @ComputeDerivativeGroupQuadsKHR@ SPIR-V capability.
+    computeDerivativeGroupQuads :: Bool
+  , -- | #features-computeDerivativeGroupLinear# @computeDerivativeGroupLinear@
+    -- indicates that the implementation supports the
+    -- @ComputeDerivativeGroupLinearKHR@ SPIR-V capability.
+    computeDerivativeGroupLinear :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceComputeShaderDerivativesFeaturesKHR)
+#endif
+deriving instance Show PhysicalDeviceComputeShaderDerivativesFeaturesKHR
+
+instance ToCStruct PhysicalDeviceComputeShaderDerivativesFeaturesKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceComputeShaderDerivativesFeaturesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (computeDerivativeGroupQuads))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (computeDerivativeGroupLinear))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_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 PhysicalDeviceComputeShaderDerivativesFeaturesKHR where
+  peekCStruct p = do
+    computeDerivativeGroupQuads <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    computeDerivativeGroupLinear <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pure $ PhysicalDeviceComputeShaderDerivativesFeaturesKHR
+             (bool32ToBool computeDerivativeGroupQuads)
+             (bool32ToBool computeDerivativeGroupLinear)
+
+instance Storable PhysicalDeviceComputeShaderDerivativesFeaturesKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceComputeShaderDerivativesFeaturesKHR where
+  zero = PhysicalDeviceComputeShaderDerivativesFeaturesKHR
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR - Structure
+-- describing compute shader derivative operations supported by an
+-- implementation
+--
+-- = Members
+--
+-- The members of the 'PhysicalDeviceComputeShaderDerivativesPropertiesKHR'
+-- structure describe the following:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceComputeShaderDerivativesPropertiesKHR' 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_compute_shader_derivatives VK_KHR_compute_shader_derivatives>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceComputeShaderDerivativesPropertiesKHR = PhysicalDeviceComputeShaderDerivativesPropertiesKHR
+  { -- | #limits-meshAndTaskShaderDerivatives# @meshAndTaskShaderDerivatives@
+    -- indicates whether the mesh and task shader stages support the
+    -- @ComputeDerivativeGroupQuadsKHR@ and @ComputeDerivativeGroupLinearKHR@
+    -- SPIR-V capabilities.
+    meshAndTaskShaderDerivatives :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceComputeShaderDerivativesPropertiesKHR)
+#endif
+deriving instance Show PhysicalDeviceComputeShaderDerivativesPropertiesKHR
+
+instance ToCStruct PhysicalDeviceComputeShaderDerivativesPropertiesKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceComputeShaderDerivativesPropertiesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (meshAndTaskShaderDerivatives))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceComputeShaderDerivativesPropertiesKHR where
+  peekCStruct p = do
+    meshAndTaskShaderDerivatives <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceComputeShaderDerivativesPropertiesKHR
+             (bool32ToBool meshAndTaskShaderDerivatives)
+
+instance Storable PhysicalDeviceComputeShaderDerivativesPropertiesKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceComputeShaderDerivativesPropertiesKHR where
+  zero = PhysicalDeviceComputeShaderDerivativesPropertiesKHR
+           zero
+
+
+type KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION"
+pattern KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION :: forall a . Integral a => a
+pattern KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION = 1
+
+
+type KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME = "VK_KHR_compute_shader_derivatives"
+
+-- No documentation found for TopLevel "VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME"
+pattern KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME = "VK_KHR_compute_shader_derivatives"
+
diff --git a/src/Vulkan/Extensions/VK_KHR_compute_shader_derivatives.hs-boot b/src/Vulkan/Extensions/VK_KHR_compute_shader_derivatives.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_compute_shader_derivatives.hs-boot
@@ -0,0 +1,178 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_compute_shader_derivatives - device extension
+--
+-- = VK_KHR_compute_shader_derivatives
+--
+-- [__Name String__]
+--     @VK_KHR_compute_shader_derivatives@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     512
+--
+-- [__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>
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_compute_shader_derivatives.html SPV_KHR_compute_shader_derivatives>
+--
+-- [__Contact__]
+--
+--     -   Jean-Noe Morissette
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_compute_shader_derivatives] @MagicPoncho%0A*Here describe the issue or question you have about the VK_KHR_compute_shader_derivatives extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_compute_shader_derivatives.adoc VK_KHR_compute_shader_derivatives>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-06-26
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_compute_shader_derivatives.html SPV_KHR_compute_shader_derivatives>
+--
+--     -   This extension provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/khr/GLSL_KHR_compute_shader_derivatives.txt GL_KHR_compute_shader_derivatives>
+--
+-- [__Contributors__]
+--
+--     -   Jean-Noe Morissette, Epic Games
+--
+--     -   Daniel Koch, NVIDIA
+--
+--     -   Pat Brown, NVIDIA
+--
+--     -   Stu Smith, AMD
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Ralph Potter, Samsung
+--
+--     -   Pan Gao, Huawei
+--
+--     -   Samuel (Sheng-Wen) Huang, MediaTek
+--
+--     -   Graeme Leese, Broadcom
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Matthew Netsh, Qualcomm
+--
+-- == Description
+--
+-- This extension adds Vulkan support for the
+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_compute_shader_derivatives.html SPV_KHR_compute_shader_derivatives>
+-- SPIR-V extension.
+--
+-- The SPIR-V extension provides two new execution modes, both of which
+-- allow execution models with defined workgroups to use built-ins that
+-- evaluate derivatives explicitly or implicitly. Derivatives will be
+-- computed via differencing over a 2x2 group of shader invocations. The
+-- @DerivativeGroupQuadsKHR@ execution mode assembles shader invocations
+-- into 2x2 groups, where each group has x and y coordinates of the local
+-- invocation ID of the form (2m+{0,1}, 2n+{0,1}). The
+-- @DerivativeGroupLinearKHR@ execution mode assembles shader invocations
+-- into 2x2 groups, where each group has local invocation index values of
+-- the form 4m+{0,1,2,3}.
+--
+-- The new execution modes are supported in compute shaders and optionally
+-- (see
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-meshAndTaskShaderDerivatives meshAndTaskShaderDerivatives>)
+-- in mesh and task shaders.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceComputeShaderDerivativesFeaturesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceComputeShaderDerivativesPropertiesKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME'
+--
+-- -   'KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR'
+--
+-- == New SPIR-V Capability
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsKHR ComputeDerivativeGroupQuadsKHR>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearKHR ComputeDerivativeGroupLinearKHR>
+--
+-- == Examples
+--
+-- None.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-02-27 (Jean-Noe Morissette)
+--
+--     -   Initial draft
+--
+--     -   Add properties and clarify mesh and task support (Daniel Koch)
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_compute_shader_derivatives 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_compute_shader_derivatives  ( PhysicalDeviceComputeShaderDerivativesFeaturesKHR
+                                                            , PhysicalDeviceComputeShaderDerivativesPropertiesKHR
+                                                            ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceComputeShaderDerivativesFeaturesKHR
+
+instance ToCStruct PhysicalDeviceComputeShaderDerivativesFeaturesKHR
+instance Show PhysicalDeviceComputeShaderDerivativesFeaturesKHR
+
+instance FromCStruct PhysicalDeviceComputeShaderDerivativesFeaturesKHR
+
+
+data PhysicalDeviceComputeShaderDerivativesPropertiesKHR
+
+instance ToCStruct PhysicalDeviceComputeShaderDerivativesPropertiesKHR
+instance Show PhysicalDeviceComputeShaderDerivativesPropertiesKHR
+
+instance FromCStruct PhysicalDeviceComputeShaderDerivativesPropertiesKHR
+
diff --git a/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs b/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs
--- a/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs
+++ b/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_cooperative_matrix - device extension
 --
--- == VK_KHR_cooperative_matrix
+-- = VK_KHR_cooperative_matrix
 --
 -- [__Name String__]
 --     @VK_KHR_cooperative_matrix@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -32,6 +34,9 @@
 --     -   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* >
 --
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_cooperative_matrix.adoc VK_KHR_cooperative_matrix>
+--
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
@@ -40,7 +45,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/khr/GLSL_KHR_cooperative_matrix.txt GLSL_KHR_cooperative_matrix>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/khr/GLSL_KHR_cooperative_matrix.txt GLSL_KHR_cooperative_matrix>
 --
 -- [__Contributors__]
 --
@@ -65,7 +70,7 @@
 -- 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>
+-- <https://github.com/KhronosGroup/GLSL/blob/main/extensions/khr/GLSL_KHR_cooperative_matrix.txt GLSL_KHR_cooperative_matrix>
 -- GLSL extension.
 --
 -- This extension includes support for enumerating the matrix types and
@@ -126,10 +131,7 @@
 --
 -- == See Also
 --
--- 'ComponentTypeKHR', 'CooperativeMatrixPropertiesKHR',
--- 'PhysicalDeviceCooperativeMatrixFeaturesKHR',
--- 'PhysicalDeviceCooperativeMatrixPropertiesKHR', 'ScopeKHR',
--- 'getPhysicalDeviceCooperativeMatrixPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -243,8 +245,8 @@
 --
 -- 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
+-- @pPropertyCount@ /must/ point to a variable set by the application 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@
@@ -407,7 +409,9 @@
 -- At least one entry in the list /must/ have power of two values for all
 -- of @MSize@, @KSize@, and @NSize@.
 --
--- @scope@ /must/ be 'SCOPE_SUBGROUP_KHR'.
+-- If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-cooperativeMatrixWorkgroupScope cooperativeMatrixWorkgroupScope>
+-- feature is not supported, @scope@ /must/ be 'SCOPE_SUBGROUP_KHR'.
 --
 -- == Valid Usage (Implicit)
 --
@@ -436,7 +440,11 @@
     -- 'Vulkan.Core10.Enums.Result.Result', of type 'ComponentTypeKHR'.
     resultType :: ComponentTypeKHR
   , -- | @saturatingAccumulation@ indicates whether the @SaturatingAccumulation@
-    -- operand to @OpCooperativeMatrixMulAddKHR@ /must/ be present.
+    -- operand to @OpCooperativeMatrixMulAddKHR@ /must/ be present or not. If
+    -- it is 'Vulkan.Core10.FundamentalTypes.TRUE', the
+    -- @SaturatingAccumulation@ operand /must/ be present. If it is
+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', the @SaturatingAccumulation@
+    -- operand /must/ not be present.
     saturatingAccumulation :: Bool
   , -- | @scope@ is the scope of all the matrix types, of type 'ScopeKHR'.
     scope :: ScopeKHR
@@ -599,6 +607,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_cooperative_matrix VK_KHR_cooperative_matrix>,
+-- 'Vulkan.Extensions.VK_NV_cooperative_matrix2.CooperativeMatrixFlexibleDimensionsPropertiesNV',
 -- 'CooperativeMatrixPropertiesKHR'
 newtype ScopeKHR = ScopeKHR Int32
   deriving newtype (Eq, Ord, Storable, Zero)
@@ -662,6 +671,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_cooperative_matrix VK_KHR_cooperative_matrix>,
+-- 'Vulkan.Extensions.VK_NV_cooperative_matrix2.CooperativeMatrixFlexibleDimensionsPropertiesNV',
 -- 'CooperativeMatrixPropertiesKHR'
 newtype ComponentTypeKHR = ComponentTypeKHR Int32
   deriving newtype (Eq, Ord, Storable, Zero)
@@ -675,28 +685,28 @@
 -- | '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.
+-- | 'COMPONENT_TYPE_SINT8_KHR' corresponds to SPIR-V @OpTypeInt@ 8 0\/1.
 pattern COMPONENT_TYPE_SINT8_KHR = ComponentTypeKHR 3
 
--- | 'COMPONENT_TYPE_SINT16_KHR' corresponds to SPIR-V @OpTypeInt@ 16 1.
+-- | 'COMPONENT_TYPE_SINT16_KHR' corresponds to SPIR-V @OpTypeInt@ 16 0\/1.
 pattern COMPONENT_TYPE_SINT16_KHR = ComponentTypeKHR 4
 
--- | 'COMPONENT_TYPE_SINT32_KHR' corresponds to SPIR-V @OpTypeInt@ 32 1.
+-- | 'COMPONENT_TYPE_SINT32_KHR' corresponds to SPIR-V @OpTypeInt@ 32 0\/1.
 pattern COMPONENT_TYPE_SINT32_KHR = ComponentTypeKHR 5
 
--- | 'COMPONENT_TYPE_SINT64_KHR' corresponds to SPIR-V @OpTypeInt@ 64 1.
+-- | 'COMPONENT_TYPE_SINT64_KHR' corresponds to SPIR-V @OpTypeInt@ 64 0\/1.
 pattern COMPONENT_TYPE_SINT64_KHR = ComponentTypeKHR 6
 
--- | 'COMPONENT_TYPE_UINT8_KHR' corresponds to SPIR-V @OpTypeInt@ 8 0.
+-- | 'COMPONENT_TYPE_UINT8_KHR' corresponds to SPIR-V @OpTypeInt@ 8 0\/1.
 pattern COMPONENT_TYPE_UINT8_KHR = ComponentTypeKHR 7
 
--- | 'COMPONENT_TYPE_UINT16_KHR' corresponds to SPIR-V @OpTypeInt@ 16 0.
+-- | 'COMPONENT_TYPE_UINT16_KHR' corresponds to SPIR-V @OpTypeInt@ 16 0\/1.
 pattern COMPONENT_TYPE_UINT16_KHR = ComponentTypeKHR 8
 
--- | 'COMPONENT_TYPE_UINT32_KHR' corresponds to SPIR-V @OpTypeInt@ 32 0.
+-- | 'COMPONENT_TYPE_UINT32_KHR' corresponds to SPIR-V @OpTypeInt@ 32 0\/1.
 pattern COMPONENT_TYPE_UINT32_KHR = ComponentTypeKHR 9
 
--- | 'COMPONENT_TYPE_UINT64_KHR' corresponds to SPIR-V @OpTypeInt@ 64 0.
+-- | 'COMPONENT_TYPE_UINT64_KHR' corresponds to SPIR-V @OpTypeInt@ 64 0\/1.
 pattern COMPONENT_TYPE_UINT64_KHR = ComponentTypeKHR 10
 
 {-# COMPLETE
diff --git a/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs-boot b/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_cooperative_matrix - device extension
 --
--- == VK_KHR_cooperative_matrix
+-- = VK_KHR_cooperative_matrix
 --
 -- [__Name String__]
 --     @VK_KHR_cooperative_matrix@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -32,6 +34,9 @@
 --     -   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* >
 --
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_cooperative_matrix.adoc VK_KHR_cooperative_matrix>
+--
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
@@ -40,7 +45,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/khr/GLSL_KHR_cooperative_matrix.txt GLSL_KHR_cooperative_matrix>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/khr/GLSL_KHR_cooperative_matrix.txt GLSL_KHR_cooperative_matrix>
 --
 -- [__Contributors__]
 --
@@ -65,7 +70,7 @@
 -- 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>
+-- <https://github.com/KhronosGroup/GLSL/blob/main/extensions/khr/GLSL_KHR_cooperative_matrix.txt GLSL_KHR_cooperative_matrix>
 -- GLSL extension.
 --
 -- This extension includes support for enumerating the matrix types and
@@ -126,10 +131,7 @@
 --
 -- == See Also
 --
--- 'ComponentTypeKHR', 'CooperativeMatrixPropertiesKHR',
--- 'PhysicalDeviceCooperativeMatrixFeaturesKHR',
--- 'PhysicalDeviceCooperativeMatrixPropertiesKHR', 'ScopeKHR',
--- 'getPhysicalDeviceCooperativeMatrixPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_copy_commands2 - device extension
 --
--- == VK_KHR_copy_commands2
+-- = VK_KHR_copy_commands2
 --
 -- [__Name String__]
 --     @VK_KHR_copy_commands2@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -32,8 +32,8 @@
 --
 -- [__Contact__]
 --
---     -   Jeff Leger
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_copy_commands2] @jackohound%0A*Here describe the issue or question you have about the VK_KHR_copy_commands2 extension* >
+--     -   Matthew Netsch
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_copy_commands2] @mnetsch%0A*Here describe the issue or question you have about the VK_KHR_copy_commands2 extension* >
 --
 -- == Other Extension Metadata
 --
@@ -136,9 +136,11 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- KHR suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- KHR suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Version History
 --
@@ -148,12 +150,7 @@
 --
 -- == See Also
 --
--- 'BlitImageInfo2KHR', 'BufferCopy2KHR', 'BufferImageCopy2KHR',
--- 'CopyBufferInfo2KHR', 'CopyBufferToImageInfo2KHR', 'CopyImageInfo2KHR',
--- 'CopyImageToBufferInfo2KHR', 'ImageBlit2KHR', 'ImageCopy2KHR',
--- 'ImageResolve2KHR', 'ResolveImageInfo2KHR', 'cmdBlitImage2KHR',
--- 'cmdCopyBuffer2KHR', 'cmdCopyBufferToImage2KHR', 'cmdCopyImage2KHR',
--- 'cmdCopyImageToBuffer2KHR', 'cmdResolveImage2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_create_renderpass2 - device extension
 --
--- == VK_KHR_create_renderpass2
+-- = VK_KHR_create_renderpass2
 --
 -- [__Name String__]
 --     @VK_KHR_create_renderpass2@
@@ -21,9 +21,13 @@
 --     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
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance2 VK_KHR_maintenance2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -48,8 +52,8 @@
 --
 -- == Description
 --
--- This extension provides a new entry point to create render passes in a
--- way that can be easily extended by other extensions through the
+-- This extension provides a new command to create render passes in a way
+-- that can be easily extended by other extensions through the
 -- substructures of render pass creation. The Vulkan 1.0 render pass
 -- creation sub-structures do not include @sType@\/@pNext@ members.
 -- Additionally, the render pass begin\/next\/end commands have been
@@ -87,7 +91,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -146,11 +150,7 @@
 --
 -- == See Also
 --
--- 'AttachmentDescription2KHR', 'AttachmentReference2KHR',
--- 'RenderPassCreateInfo2KHR', 'SubpassBeginInfoKHR',
--- 'SubpassDependency2KHR', 'SubpassDescription2KHR', 'SubpassEndInfoKHR',
--- 'cmdBeginRenderPass2KHR', 'cmdEndRenderPass2KHR', 'cmdNextSubpass2KHR',
--- 'createRenderPass2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_dedicated_allocation - device extension
 --
--- == VK_KHR_dedicated_allocation
+-- = VK_KHR_dedicated_allocation
 --
 -- [__Name String__]
 --     @VK_KHR_dedicated_allocation@
@@ -22,6 +22,8 @@
 --
 -- [__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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -76,7 +78,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -202,7 +204,7 @@
 --
 -- == See Also
 --
--- 'MemoryDedicatedAllocateInfoKHR', 'MemoryDedicatedRequirementsKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_deferred_host_operations - device extension
 --
--- == VK_KHR_deferred_host_operations
+-- = VK_KHR_deferred_host_operations
 --
 -- [__Name String__]
 --     @VK_KHR_deferred_host_operations@
@@ -191,7 +191,7 @@
 -- >     {
 -- >     case VK_SUCCESS:
 -- >         {
--- >             // deferred operation has finished.  Query its result
+-- >             // deferred operation has finished.  Query its result.
 -- >             result = vkGetDeferredOperationResultKHR(device, hOp);
 -- >         }
 -- >         break;
@@ -256,10 +256,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Extensions.Handles.DeferredOperationKHR',
--- 'createDeferredOperationKHR', 'deferredOperationJoinKHR',
--- 'destroyDeferredOperationKHR', 'getDeferredOperationMaxConcurrencyKHR',
--- 'getDeferredOperationResultKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -517,8 +514,6 @@
 -- host CPU. In these situations, an application /should/ clamp the return
 -- value rather than oversubscribing the machine.
 --
--- Note
---
 -- The recommended usage pattern for applications is to query this value
 -- once, after deferral, and schedule no more than the specified number of
 -- threads to join the operation. Each time a joined thread receives
@@ -593,6 +588,9 @@
 --     -   'Vulkan.Core10.Enums.Result.SUCCESS'
 --
 --     -   'Vulkan.Core10.Enums.Result.NOT_READY'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--     None
 --
 -- = See Also
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_depth_stencil_resolve - device extension
 --
--- == VK_KHR_depth_stencil_resolve
+-- = VK_KHR_depth_stencil_resolve
 --
 -- [__Name String__]
 --     @VK_KHR_depth_stencil_resolve@
@@ -22,6 +22,8 @@
 --
 -- [__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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__Deprecation State__]
 --
@@ -83,7 +85,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -139,9 +141,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDepthStencilResolvePropertiesKHR',
--- 'ResolveModeFlagBitsKHR', 'ResolveModeFlagsKHR',
--- 'SubpassDescriptionDepthStencilResolveKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_descriptor_update_template - device extension
 --
--- == VK_KHR_descriptor_update_template
+-- = VK_KHR_descriptor_update_template
 --
 -- [__Name String__]
 --     @VK_KHR_descriptor_update_template@
@@ -65,18 +65,17 @@
 -- For those cases it is also not unlikely that all information required to
 -- update a single descriptor set is stored in a single struct. This
 -- extension provides a way to update a fixed set of descriptors in a
--- single 'Vulkan.Core10.Handles.DescriptorSet' with a pointer to a user
--- defined data structure describing the new descriptors.
+-- single 'Vulkan.Core10.Handles.DescriptorSet' with a pointer to an
+-- application-defined data structure describing the new descriptors.
 --
 -- == Promotion to Vulkan 1.1
 --
--- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetWithTemplateKHR'
--- is included as an interaction with @VK_KHR_push_descriptor@. If Vulkan
--- 1.1 and @VK_KHR_push_descriptor@ are supported, this is included by
--- @VK_KHR_push_descriptor@.
+-- 'cmdPushDescriptorSetWithTemplateKHR' is included as an interaction with
+-- @VK_KHR_push_descriptor@. If Vulkan 1.1 and @VK_KHR_push_descriptor@ are
+-- supported, this is included by @VK_KHR_push_descriptor@.
 --
 -- The base functionality in this extension is included in core Vulkan 1.1,
--- with the KHR suffix omitted. The original type, enum and command names
+-- with the KHR suffix omitted. The original type, enum, and command names
 -- are still available as aliases of the core functionality.
 --
 -- == New Object Types
@@ -95,7 +94,7 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_push_descriptor VK_KHR_push_descriptor>
 -- is supported:
 --
--- -   'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetWithTemplateKHR'
+-- -   'cmdPushDescriptorSetWithTemplateKHR'
 --
 -- == New Structures
 --
@@ -156,12 +155,7 @@
 --
 -- == See Also
 --
--- 'DescriptorUpdateTemplateCreateFlagsKHR',
--- 'DescriptorUpdateTemplateCreateInfoKHR',
--- 'DescriptorUpdateTemplateEntryKHR', 'DescriptorUpdateTemplateKHR',
--- 'DescriptorUpdateTemplateTypeKHR', 'createDescriptorUpdateTemplateKHR',
--- 'destroyDescriptorUpdateTemplateKHR',
--- 'updateDescriptorSetWithTemplateKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -170,7 +164,8 @@
 --
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
-module Vulkan.Extensions.VK_KHR_descriptor_update_template  ( pattern STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR
+module Vulkan.Extensions.VK_KHR_descriptor_update_template  ( cmdPushDescriptorSetWithTemplateKHR
+                                                            , pattern STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR
                                                             , pattern OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR
                                                             , pattern DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR
                                                             , pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT
@@ -186,25 +181,231 @@
                                                             , pattern KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION
                                                             , KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME
                                                             , pattern KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME
-                                                            , cmdPushDescriptorSetWithTemplateKHR
                                                             , DebugReportObjectTypeEXT(..)
                                                             ) where
 
+import Vulkan.Internal.Utils (traceAroundEvent)
+import Control.Monad (unless)
+import Control.Monad.IO.Class (liftIO)
+import GHC.IO (throwIO)
+import GHC.Ptr (nullFunPtr)
+import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
+import GHC.IO.Exception (IOErrorType(..))
+import GHC.IO.Exception (IOException(..))
+import Foreign.Ptr (FunPtr)
+import Foreign.Ptr (Ptr)
+import Data.Word (Word32)
 import Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template (createDescriptorUpdateTemplate)
 import Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template (destroyDescriptorUpdateTemplate)
 import Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template (updateDescriptorSetWithTemplate)
+import Vulkan.NamedType ((:::))
+import Vulkan.Core10.Handles (CommandBuffer)
+import Vulkan.Core10.Handles (CommandBuffer(..))
+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
+import Vulkan.Core10.Handles (CommandBuffer_T)
 import Vulkan.Core11.Handles (DescriptorUpdateTemplate)
+import Vulkan.Core11.Handles (DescriptorUpdateTemplate(..))
 import Vulkan.Core11.Enums.DescriptorUpdateTemplateCreateFlags (DescriptorUpdateTemplateCreateFlags)
 import Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template (DescriptorUpdateTemplateCreateInfo)
 import Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template (DescriptorUpdateTemplateEntry)
 import Vulkan.Core11.Enums.DescriptorUpdateTemplateType (DescriptorUpdateTemplateType)
+import Vulkan.Dynamic (DeviceCmds(pVkCmdPushDescriptorSetWithTemplateKHR))
+import Vulkan.Core10.Handles (PipelineLayout)
+import Vulkan.Core10.Handles (PipelineLayout(..))
 import Vulkan.Extensions.VK_EXT_debug_report (DebugReportObjectTypeEXT(DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT))
 import Vulkan.Core11.Enums.DescriptorUpdateTemplateType (DescriptorUpdateTemplateType(DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO))
-import Vulkan.Extensions.VK_KHR_push_descriptor (cmdPushDescriptorSetWithTemplateKHR)
 import Vulkan.Extensions.VK_EXT_debug_report (DebugReportObjectTypeEXT(..))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdPushDescriptorSetWithTemplateKHR
+  :: FunPtr (Ptr CommandBuffer_T -> DescriptorUpdateTemplate -> PipelineLayout -> Word32 -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> DescriptorUpdateTemplate -> PipelineLayout -> Word32 -> Ptr () -> IO ()
+
+-- | vkCmdPushDescriptorSetWithTemplateKHR - Pushes descriptor updates into a
+-- command buffer using a descriptor update template
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-00366# The
+--     @pipelineBindPoint@ specified during the creation of the descriptor
+--     update template /must/ be supported by the @commandBuffer@’s parent
+--     'Vulkan.Core10.Handles.CommandPool'’s queue family
+--
+-- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-pData-01686# @pData@
+--     /must/ be a valid pointer to a memory containing one or more valid
+--     instances of 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo',
+--     'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo', or
+--     'Vulkan.Core10.Handles.BufferView' in a layout defined by
+--     @descriptorUpdateTemplate@ when it was created with
+--     'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.createDescriptorUpdateTemplate'
+--
+-- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-07993# @layout@
+--     /must/ be compatible with the layout used to create
+--     @descriptorUpdateTemplate@
+--
+-- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-07994#
+--     @descriptorUpdateTemplate@ /must/ have been created with a
+--     @templateType@ of
+--     'Vulkan.Core11.Enums.DescriptorUpdateTemplateType.DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR'
+--
+-- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07995# @set@ /must/
+--     be the same value used to create @descriptorUpdateTemplate@
+--
+-- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07304# @set@ /must/
+--     be less than
+--     'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo'::@setLayoutCount@
+--     provided when @layout@ was created
+--
+-- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07305# @set@ /must/
+--     be the unique set number in the pipeline layout that uses a
+--     descriptor set layout that was created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-parameter#
+--     @descriptorUpdateTemplate@ /must/ be a valid
+--     'Vulkan.Core11.Handles.DescriptorUpdateTemplate' handle
+--
+-- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-parameter#
+--     @layout@ /must/ be a valid 'Vulkan.Core10.Handles.PipelineLayout'
+--     handle
+--
+-- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-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-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-cmdpool#
+--     The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-videocoding# This
+--     command /must/ only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent# Each of
+--     @commandBuffer@, @descriptorUpdateTemplate@, 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                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- __API Example__
+--
+-- > struct AppDataStructure
+-- > {
+-- >     VkDescriptorImageInfo  imageInfo;          // a single image info
+-- >     // ... some more application-related data
+-- > };
+-- >
+-- > const VkDescriptorUpdateTemplateEntry descriptorUpdateTemplateEntries[] =
+-- > {
+-- >     // binding to a single image descriptor
+-- >     {
+-- >         .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 =
+-- > {
+-- >     .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;
+-- > myResult = vkCreateDescriptorUpdateTemplate(
+-- >     myDevice,
+-- >     &createInfo,
+-- >     NULL,
+-- >     &myDescriptorUpdateTemplate);
+-- >
+-- > AppDataStructure appData;
+-- > // fill appData here or cache it in your engine
+-- > vkCmdPushDescriptorSetWithTemplateKHR(myCmdBuffer, myDescriptorUpdateTemplate, myPipelineLayout, 0,&appData);
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_descriptor_update_template VK_KHR_descriptor_update_template>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_push_descriptor VK_KHR_push_descriptor>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core11.Handles.DescriptorUpdateTemplate',
+-- 'Vulkan.Core10.Handles.PipelineLayout'
+cmdPushDescriptorSetWithTemplateKHR :: forall io
+                                     . (MonadIO io)
+                                    => -- | @commandBuffer@ is the command buffer that the descriptors will be
+                                       -- recorded in.
+                                       CommandBuffer
+                                    -> -- | @descriptorUpdateTemplate@ is a descriptor update template defining how
+                                       -- to interpret the descriptor information in @pData@.
+                                       DescriptorUpdateTemplate
+                                    -> -- | @layout@ is a 'Vulkan.Core10.Handles.PipelineLayout' object used to
+                                       -- program the bindings. It /must/ be compatible with the layout used to
+                                       -- create the @descriptorUpdateTemplate@ handle.
+                                       PipelineLayout
+                                    -> -- | @set@ is the set number of the descriptor set in the pipeline layout
+                                       -- that will be updated. This /must/ be the same number used to create the
+                                       -- @descriptorUpdateTemplate@ handle.
+                                       ("set" ::: Word32)
+                                    -> -- | @pData@ is a pointer to memory containing descriptors for the templated
+                                       -- update.
+                                       ("data" ::: Ptr ())
+                                    -> io ()
+cmdPushDescriptorSetWithTemplateKHR commandBuffer
+                                      descriptorUpdateTemplate
+                                      layout
+                                      set
+                                      data' = liftIO $ do
+  let vkCmdPushDescriptorSetWithTemplateKHRPtr = pVkCmdPushDescriptorSetWithTemplateKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdPushDescriptorSetWithTemplateKHRPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushDescriptorSetWithTemplateKHR is null" Nothing Nothing
+  let vkCmdPushDescriptorSetWithTemplateKHR' = mkVkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHRPtr
+  traceAroundEvent "vkCmdPushDescriptorSetWithTemplateKHR" (vkCmdPushDescriptorSetWithTemplateKHR'
+                                                              (commandBufferHandle (commandBuffer))
+                                                              (descriptorUpdateTemplate)
+                                                              (layout)
+                                                              (set)
+                                                              (data'))
+  pure $ ()
+
+
 -- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR"
 pattern STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_device_group - device extension
 --
--- == VK_KHR_device_group
+-- = VK_KHR_device_group
 --
 -- [__Name String__]
 --     @VK_KHR_device_group@
@@ -114,7 +114,7 @@
 -- by @VK_KHR_swapchain@.
 --
 -- The base functionality in this extension is included in core Vulkan 1.1,
--- with the KHR suffix omitted. The original type, enum and command names
+-- with the KHR suffix omitted. The original type, enum, and command names
 -- are still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -172,12 +172,12 @@
 -- -   Extending
 --     'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo':
 --
---     -   'BindBufferMemoryDeviceGroupInfoKHR'
+--     -   'Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.BindBufferMemoryDeviceGroupInfoKHR'
 --
 -- -   Extending
 --     'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo':
 --
---     -   'BindImageMemoryDeviceGroupInfoKHR'
+--     -   'Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.BindImageMemoryDeviceGroupInfoKHR'
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
@@ -286,13 +286,13 @@
 -- -   Extending
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits':
 --
---     -   'IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR'
+--     -   'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR'
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
---     -   'STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR'
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR'
 --
---     -   'STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR'
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR'
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
@@ -356,12 +356,7 @@
 --
 -- == See Also
 --
--- 'DeviceGroupBindSparseInfoKHR', 'DeviceGroupCommandBufferBeginInfoKHR',
--- 'DeviceGroupRenderPassBeginInfoKHR', 'DeviceGroupSubmitInfoKHR',
--- 'MemoryAllocateFlagBitsKHR', 'MemoryAllocateFlagsInfoKHR',
--- 'MemoryAllocateFlagsKHR', 'PeerMemoryFeatureFlagBitsKHR',
--- 'PeerMemoryFeatureFlagsKHR', 'cmdDispatchBaseKHR',
--- 'cmdSetDeviceMaskKHR', 'getDeviceGroupPeerMemoryFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -383,9 +378,6 @@
                                               , pattern PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
                                               , pattern PIPELINE_CREATE_DISPATCH_BASE_KHR
                                               , pattern DEPENDENCY_DEVICE_GROUP_BIT_KHR
-                                              , pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR
-                                              , pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR
-                                              , pattern IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
                                               , getDeviceGroupPeerMemoryFeaturesKHR
                                               , cmdSetDeviceMaskKHR
                                               , cmdDispatchBaseKHR
@@ -394,8 +386,6 @@
                                               , PeerMemoryFeatureFlagBitsKHR
                                               , MemoryAllocateFlagBitsKHR
                                               , MemoryAllocateFlagsInfoKHR
-                                              , BindBufferMemoryDeviceGroupInfoKHR
-                                              , BindImageMemoryDeviceGroupInfoKHR
                                               , DeviceGroupRenderPassBeginInfoKHR
                                               , DeviceGroupCommandBufferBeginInfoKHR
                                               , DeviceGroupSubmitInfoKHR
@@ -421,14 +411,17 @@
                                               , DeviceGroupPresentModeFlagsKHR
                                               , SwapchainCreateFlagBitsKHR(..)
                                               , SwapchainCreateFlagsKHR
+                                              , BindBufferMemoryDeviceGroupInfoKHR
+                                              , BindImageMemoryDeviceGroupInfoKHR
+                                              , pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR
+                                              , pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR
+                                              , pattern IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
                                               ) where
 
 import Data.String (IsString)
 import Vulkan.Core11.Promoted_From_VK_KHR_device_group (cmdDispatchBase)
 import Vulkan.Core11.Promoted_From_VK_KHR_device_group (cmdSetDeviceMask)
 import Vulkan.Core11.Promoted_From_VK_KHR_device_group (getDeviceGroupPeerMemoryFeatures)
-import Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2 (BindBufferMemoryDeviceGroupInfo)
-import Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2 (BindImageMemoryDeviceGroupInfo)
 import Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupBindSparseInfo)
 import Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupCommandBufferBeginInfo)
 import Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupRenderPassBeginInfo)
@@ -440,8 +433,6 @@
 import Vulkan.Core11.Enums.PeerMemoryFeatureFlagBits (PeerMemoryFeatureFlags)
 import Vulkan.Core10.Enums.DependencyFlagBits (DependencyFlags)
 import Vulkan.Core10.Enums.DependencyFlagBits (DependencyFlagBits(DEPENDENCY_DEVICE_GROUP_BIT))
-import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags)
-import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlagBits(IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT))
 import Vulkan.Core11.Enums.MemoryAllocateFlagBits (MemoryAllocateFlags)
 import Vulkan.Core11.Enums.MemoryAllocateFlagBits (MemoryAllocateFlagBits(MEMORY_ALLOCATE_DEVICE_MASK_BIT))
 import Vulkan.Core11.Enums.PeerMemoryFeatureFlagBits (PeerMemoryFeatureFlags)
@@ -455,8 +446,6 @@
 import Vulkan.Core11.Promoted_From_VK_KHR_device_group (pattern PIPELINE_CREATE_DISPATCH_BASE)
 import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
 import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO))
@@ -468,6 +457,8 @@
 import Vulkan.Extensions.VK_KHR_swapchain (getDeviceGroupSurfacePresentModesKHR)
 import Vulkan.Extensions.VK_KHR_swapchain (getPhysicalDevicePresentRectanglesKHR)
 import Vulkan.Extensions.VK_KHR_swapchain (AcquireNextImageInfoKHR(..))
+import Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2 (BindBufferMemoryDeviceGroupInfoKHR)
+import Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2 (BindImageMemoryDeviceGroupInfoKHR)
 import Vulkan.Extensions.VK_KHR_swapchain (BindImageMemorySwapchainInfoKHR(..))
 import Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentCapabilitiesKHR(..))
 import Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentInfoKHR(..))
@@ -479,6 +470,9 @@
 import Vulkan.Extensions.VK_KHR_swapchain (SwapchainCreateFlagBitsKHR(..))
 import Vulkan.Extensions.VK_KHR_swapchain (SwapchainCreateFlagsKHR)
 import Vulkan.Extensions.Handles (SwapchainKHR(..))
+import Vulkan.Core10.Enums.ImageCreateFlagBits (pattern IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR)
+import Vulkan.Core10.Enums.StructureType (pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR)
+import Vulkan.Core10.Enums.StructureType (pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR)
 -- No documentation found for TopLevel "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR"
 pattern STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO
 
@@ -531,18 +525,6 @@
 pattern DEPENDENCY_DEVICE_GROUP_BIT_KHR = DEPENDENCY_DEVICE_GROUP_BIT
 
 
--- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR"
-pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
-
-
--- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR"
-pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
-
-
--- No documentation found for TopLevel "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"
-pattern IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
-
-
 -- No documentation found for TopLevel "vkGetDeviceGroupPeerMemoryFeaturesKHR"
 getDeviceGroupPeerMemoryFeaturesKHR = getDeviceGroupPeerMemoryFeatures
 
@@ -573,14 +555,6 @@
 
 -- No documentation found for TopLevel "VkMemoryAllocateFlagsInfoKHR"
 type MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo
-
-
--- No documentation found for TopLevel "VkBindBufferMemoryDeviceGroupInfoKHR"
-type BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo
-
-
--- No documentation found for TopLevel "VkBindImageMemoryDeviceGroupInfoKHR"
-type BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo
 
 
 -- No documentation found for TopLevel "VkDeviceGroupRenderPassBeginInfoKHR"
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_device_group_creation - instance extension
 --
--- == VK_KHR_device_group_creation
+-- = VK_KHR_device_group_creation
 --
 -- [__Name String__]
 --     @VK_KHR_device_group_creation@
@@ -55,7 +55,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -127,9 +127,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.MAX_DEVICE_GROUP_SIZE_KHR',
--- 'DeviceGroupDeviceCreateInfoKHR', 'PhysicalDeviceGroupPropertiesKHR',
--- 'enumeratePhysicalDeviceGroupsKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_display - instance extension
 --
--- == VK_KHR_display
+-- = VK_KHR_display
 --
 -- [__Name String__]
 --     @VK_KHR_display@
@@ -286,14 +286,12 @@
 --
 -- == Examples
 --
--- Note
---
 -- The example code for the @VK_KHR_display@ and @VK_KHR_display_swapchain@
 -- extensions was removed from the appendix after revision 1.0.43. The
 -- display enumeration example code was ported to the cube demo that is
 -- shipped with the official Khronos SDK, and is being kept up-to-date in
 -- that location (see:
--- <https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c>).
+-- <https://github.com/KhronosGroup/Vulkan-Tools/blob/main/cube/cube.c>).
 --
 -- == Version History
 --
@@ -492,19 +490,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Extensions.Handles.DisplayKHR', 'DisplayModeCreateFlagsKHR',
--- 'DisplayModeCreateInfoKHR', 'Vulkan.Extensions.Handles.DisplayModeKHR',
--- 'DisplayModeParametersKHR', 'DisplayModePropertiesKHR',
--- 'DisplayPlaneAlphaFlagBitsKHR', 'DisplayPlaneAlphaFlagsKHR',
--- 'DisplayPlaneCapabilitiesKHR', 'DisplayPlanePropertiesKHR',
--- 'DisplayPropertiesKHR', 'DisplaySurfaceCreateFlagsKHR',
--- 'DisplaySurfaceCreateInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_surface.SurfaceTransformFlagsKHR',
--- 'createDisplayModeKHR', 'createDisplayPlaneSurfaceKHR',
--- 'getDisplayModePropertiesKHR', 'getDisplayPlaneCapabilitiesKHR',
--- 'getDisplayPlaneSupportedDisplaysKHR',
--- 'getPhysicalDeviceDisplayPlanePropertiesKHR',
--- 'getPhysicalDeviceDisplayPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -555,11 +541,13 @@
 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 GHC.Base (when)
 import GHC.IO (throwIO)
+import GHC.Ptr (castPtr)
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
@@ -579,6 +567,7 @@
 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.C.Types (CFloat)
@@ -603,13 +592,19 @@
 import Vulkan.CStruct.Utils (advancePtrBytes)
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.CStruct.Extends (forgetExtensions)
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
 import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.CStruct.Extends (Chain)
 import Vulkan.Extensions.Handles (DisplayKHR)
 import Vulkan.Extensions.Handles (DisplayKHR(..))
 import Vulkan.Extensions.Handles (DisplayModeKHR)
 import Vulkan.Extensions.Handles (DisplayModeKHR(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_display_stereo (DisplaySurfaceStereoCreateInfoNV)
+import Vulkan.CStruct.Extends (Extends)
+import Vulkan.CStruct.Extends (Extendss)
+import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core10.FundamentalTypes (Extent2D)
 import Vulkan.Core10.FundamentalTypes (Flags)
 import Vulkan.Core10.Handles (Instance)
@@ -624,12 +619,17 @@
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceDisplayPropertiesKHR))
 import Vulkan.Core10.Handles (Instance_T)
 import Vulkan.Core10.FundamentalTypes (Offset2D)
+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.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
+import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
@@ -658,8 +658,8 @@
 --
 -- If @pProperties@ is @NULL@, then the number of display devices available
 -- for @physicalDevice@ 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
+-- @pPropertyCount@ /must/ point to a variable set by the application 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 the value of @pPropertyCount@ is less than the
 -- number of display devices for @physicalDevice@, at most @pPropertyCount@
@@ -743,8 +743,8 @@
 --
 -- If @pProperties@ is @NULL@, then the number of display planes available
 -- for @physicalDevice@ 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
+-- @pPropertyCount@ /must/ point to a variable set by the application 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 the value of @pPropertyCount@ is less than the
 -- number of display planes for @physicalDevice@, at most @pPropertyCount@
@@ -828,11 +828,11 @@
 -- If @pDisplays@ is @NULL@, then the number of displays usable with the
 -- specified @planeIndex@ for @physicalDevice@ is returned in
 -- @pDisplayCount@. Otherwise, @pDisplayCount@ /must/ point to a variable
--- set by the user to the number of elements in the @pDisplays@ array, and
--- on return the variable is overwritten with the number of handles
--- actually written to @pDisplays@. If the value of @pDisplayCount@ is less
--- than the number of usable display-plane pairs for @physicalDevice@, at
--- most @pDisplayCount@ handles will be written, and
+-- set by the application to the number of elements in the @pDisplays@
+-- array, and on return the variable is overwritten with the number of
+-- handles actually written to @pDisplays@. If the value of @pDisplayCount@
+-- is less than the number of usable display-plane pairs for
+-- @physicalDevice@, at most @pDisplayCount@ handles 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 pairs were returned.
@@ -927,12 +927,12 @@
 -- If @pProperties@ is @NULL@, then the number of display modes available
 -- on the specified @display@ for @physicalDevice@ 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 the value of @pPropertyCount@ is
--- less than the number of display modes for @physicalDevice@, at most
--- @pPropertyCount@ structures will be written, and
--- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of
+-- set by the application 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 the value of
+-- @pPropertyCount@ is less than the number of display modes for
+-- @physicalDevice@, 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 display modes were returned.
 --
@@ -1189,7 +1189,7 @@
   unsafe
 #endif
   "dynamic" mkVkCreateDisplayPlaneSurfaceKHR
-  :: FunPtr (Ptr Instance_T -> Ptr DisplaySurfaceCreateInfoKHR -> Ptr AllocationCallbacks -> Ptr SurfaceKHR -> IO Result) -> Ptr Instance_T -> Ptr DisplaySurfaceCreateInfoKHR -> Ptr AllocationCallbacks -> Ptr SurfaceKHR -> IO Result
+  :: FunPtr (Ptr Instance_T -> Ptr (SomeStruct DisplaySurfaceCreateInfoKHR) -> Ptr AllocationCallbacks -> Ptr SurfaceKHR -> IO Result) -> Ptr Instance_T -> Ptr (SomeStruct DisplaySurfaceCreateInfoKHR) -> Ptr AllocationCallbacks -> Ptr SurfaceKHR -> IO Result
 
 -- | vkCreateDisplayPlaneSurfaceKHR - Create a
 -- 'Vulkan.Extensions.Handles.SurfaceKHR' structure representing a display
@@ -1231,15 +1231,17 @@
 -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
 -- 'DisplaySurfaceCreateInfoKHR', 'Vulkan.Core10.Handles.Instance',
 -- 'Vulkan.Extensions.Handles.SurfaceKHR'
-createDisplayPlaneSurfaceKHR :: forall io
-                              . (MonadIO io)
+createDisplayPlaneSurfaceKHR :: forall a io
+                              . ( Extendss DisplaySurfaceCreateInfoKHR a
+                                , PokeChain a
+                                , MonadIO io )
                              => -- | @instance@ is the instance corresponding to the physical device the
                                 -- targeted display is on.
                                 Instance
                              -> -- | @pCreateInfo@ is a pointer to a 'DisplaySurfaceCreateInfoKHR' structure
                                 -- specifying which mode, plane, and other parameters to use, as described
                                 -- below.
-                                DisplaySurfaceCreateInfoKHR
+                                (DisplaySurfaceCreateInfoKHR a)
                              -> -- | @pAllocator@ is the allocator used for host memory allocated for the
                                 -- surface object when there is no more specific allocator available (see
                                 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).
@@ -1259,7 +1261,7 @@
   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free
   r <- lift $ traceAroundEvent "vkCreateDisplayPlaneSurfaceKHR" (vkCreateDisplayPlaneSurfaceKHR'
                                                                    (instanceHandle (instance'))
-                                                                   pCreateInfo
+                                                                   (forgetExtensions pCreateInfo)
                                                                    pAllocator
                                                                    (pPSurface))
   lift $ when (r < SUCCESS) (throwIO (VulkanException r))
@@ -1272,13 +1274,9 @@
 --
 -- = Description
 --
--- Note
---
 -- For devices which have no natural value to return here, implementations
 -- /should/ return the maximum resolution supported.
 --
--- Note
---
 -- Persistent presents /may/ have higher latency, and /may/ use less power
 -- when the screen content is updated infrequently, or when only a portion
 -- of the screen needs to be updated in most frames.
@@ -1444,8 +1442,6 @@
 --
 -- = Description
 --
--- Note
---
 -- For example, a 60Hz display mode would report a @refreshRate@ of 60,000.
 --
 -- == Valid Usage
@@ -1787,8 +1783,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Creating a display surface /must/ not modify the state of the displays,
 -- planes, or other resources it names. For example, it /must/ not apply
 -- the specified mode to be set on the associated display. Application of
@@ -1832,14 +1826,32 @@
 --     @height@ members of @imageExtent@ /must/ be less than or equal to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxImageDimension2D@
 --
+-- -   #VUID-VkDisplaySurfaceCreateInfoKHR-pNext-10284# If the @pNext@
+--     chain includes a
+--     'Vulkan.Extensions.VK_NV_display_stereo.DisplaySurfaceStereoCreateInfoNV'
+--     structure whose @stereoType@ member is
+--     'Vulkan.Extensions.VK_NV_display_stereo.DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV',
+--     then the @hdmi3DSupported@ member of the
+--     'Vulkan.Extensions.VK_NV_display_stereo.DisplayModeStereoPropertiesNV'
+--     structure in the @pNext@ chain of the
+--     'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayModeProperties2KHR'
+--     structure returned by
+--     'Vulkan.Extensions.VK_KHR_get_display_properties2.getDisplayModeProperties2KHR'
+--     for the display mode corresponding to @displayMode@ /must/ be
+--     'Vulkan.Core10.FundamentalTypes.TRUE'
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkDisplaySurfaceCreateInfoKHR-sType-sType# @sType@ /must/ be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR'
 --
 -- -   #VUID-VkDisplaySurfaceCreateInfoKHR-pNext-pNext# @pNext@ /must/ be
---     @NULL@
+--     @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_NV_display_stereo.DisplaySurfaceStereoCreateInfoNV'
 --
+-- -   #VUID-VkDisplaySurfaceCreateInfoKHR-sType-unique# The @sType@ value
+--     of each struct in the @pNext@ chain /must/ be unique
+--
 -- -   #VUID-VkDisplaySurfaceCreateInfoKHR-flags-zerobitmask# @flags@
 --     /must/ be @0@
 --
@@ -1863,8 +1875,10 @@
 -- 'Vulkan.Core10.Enums.StructureType.StructureType',
 -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceTransformFlagBitsKHR',
 -- 'createDisplayPlaneSurfaceKHR'
-data DisplaySurfaceCreateInfoKHR = DisplaySurfaceCreateInfoKHR
-  { -- | @flags@ is reserved for future use, and /must/ be zero.
+data DisplaySurfaceCreateInfoKHR (es :: [Type]) = DisplaySurfaceCreateInfoKHR
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is reserved for future use, and /must/ be zero.
     flags :: DisplaySurfaceCreateFlagsKHR
   , -- | @displayMode@ is a 'Vulkan.Extensions.Handles.DisplayModeKHR' handle
     -- specifying the mode to use when displaying this surface.
@@ -1890,40 +1904,55 @@
   }
   deriving (Typeable)
 #if defined(GENERIC_INSTANCES)
-deriving instance Generic (DisplaySurfaceCreateInfoKHR)
+deriving instance Generic (DisplaySurfaceCreateInfoKHR (es :: [Type]))
 #endif
-deriving instance Show DisplaySurfaceCreateInfoKHR
+deriving instance Show (Chain es) => Show (DisplaySurfaceCreateInfoKHR es)
 
-instance ToCStruct DisplaySurfaceCreateInfoKHR where
+instance Extensible DisplaySurfaceCreateInfoKHR where
+  extensibleTypeName = "DisplaySurfaceCreateInfoKHR"
+  setNext DisplaySurfaceCreateInfoKHR{..} next' = DisplaySurfaceCreateInfoKHR{next = next', ..}
+  getNext DisplaySurfaceCreateInfoKHR{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends DisplaySurfaceCreateInfoKHR e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @DisplaySurfaceStereoCreateInfoNV = Just f
+    | otherwise = Nothing
+
+instance ( Extendss DisplaySurfaceCreateInfoKHR es
+         , PokeChain es ) => ToCStruct (DisplaySurfaceCreateInfoKHR es) where
   withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p DisplaySurfaceCreateInfoKHR{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr DisplaySurfaceCreateFlagsKHR)) (flags)
-    poke ((p `plusPtr` 24 :: Ptr DisplayModeKHR)) (displayMode)
-    poke ((p `plusPtr` 32 :: Ptr Word32)) (planeIndex)
-    poke ((p `plusPtr` 36 :: Ptr Word32)) (planeStackIndex)
-    poke ((p `plusPtr` 40 :: Ptr SurfaceTransformFlagBitsKHR)) (transform)
-    poke ((p `plusPtr` 44 :: Ptr CFloat)) (CFloat (globalAlpha))
-    poke ((p `plusPtr` 48 :: Ptr DisplayPlaneAlphaFlagBitsKHR)) (alphaMode)
-    poke ((p `plusPtr` 52 :: Ptr Extent2D)) (imageExtent)
-    f
+  pokeCStruct p DisplaySurfaceCreateInfoKHR{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr DisplaySurfaceCreateFlagsKHR)) (flags)
+    lift $ poke ((p `plusPtr` 24 :: Ptr DisplayModeKHR)) (displayMode)
+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (planeIndex)
+    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (planeStackIndex)
+    lift $ poke ((p `plusPtr` 40 :: Ptr SurfaceTransformFlagBitsKHR)) (transform)
+    lift $ poke ((p `plusPtr` 44 :: Ptr CFloat)) (CFloat (globalAlpha))
+    lift $ poke ((p `plusPtr` 48 :: Ptr DisplayPlaneAlphaFlagBitsKHR)) (alphaMode)
+    lift $ poke ((p `plusPtr` 52 :: Ptr Extent2D)) (imageExtent)
+    lift $ f
   cStructSize = 64
   cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 24 :: Ptr DisplayModeKHR)) (zero)
-    poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 40 :: Ptr SurfaceTransformFlagBitsKHR)) (zero)
-    poke ((p `plusPtr` 44 :: Ptr CFloat)) (CFloat (zero))
-    poke ((p `plusPtr` 48 :: Ptr DisplayPlaneAlphaFlagBitsKHR)) (zero)
-    poke ((p `plusPtr` 52 :: Ptr Extent2D)) (zero)
-    f
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 24 :: Ptr DisplayModeKHR)) (zero)
+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)
+    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)
+    lift $ poke ((p `plusPtr` 40 :: Ptr SurfaceTransformFlagBitsKHR)) (zero)
+    lift $ poke ((p `plusPtr` 44 :: Ptr CFloat)) (CFloat (zero))
+    lift $ poke ((p `plusPtr` 48 :: Ptr DisplayPlaneAlphaFlagBitsKHR)) (zero)
+    lift $ poke ((p `plusPtr` 52 :: Ptr Extent2D)) (zero)
+    lift $ f
 
-instance FromCStruct DisplaySurfaceCreateInfoKHR where
+instance ( Extendss DisplaySurfaceCreateInfoKHR es
+         , PeekChain es ) => FromCStruct (DisplaySurfaceCreateInfoKHR es) where
   peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
     flags <- peek @DisplaySurfaceCreateFlagsKHR ((p `plusPtr` 16 :: Ptr DisplaySurfaceCreateFlagsKHR))
     displayMode <- peek @DisplayModeKHR ((p `plusPtr` 24 :: Ptr DisplayModeKHR))
     planeIndex <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
@@ -1933,6 +1962,7 @@
     alphaMode <- peek @DisplayPlaneAlphaFlagBitsKHR ((p `plusPtr` 48 :: Ptr DisplayPlaneAlphaFlagBitsKHR))
     imageExtent <- peekCStruct @Extent2D ((p `plusPtr` 52 :: Ptr Extent2D))
     pure $ DisplaySurfaceCreateInfoKHR
+             next
              flags
              displayMode
              planeIndex
@@ -1942,14 +1972,9 @@
              alphaMode
              imageExtent
 
-instance Storable DisplaySurfaceCreateInfoKHR where
-  sizeOf ~_ = 64
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero DisplaySurfaceCreateInfoKHR where
+instance es ~ '[] => Zero (DisplaySurfaceCreateInfoKHR es) where
   zero = DisplaySurfaceCreateInfoKHR
+           ()
            zero
            zero
            zero
@@ -1970,7 +1995,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display VK_KHR_display>,
--- 'DisplayModeCreateInfoKHR'
+-- 'DisplayModeCreateInfoKHR', 'Vulkan.Core10.FundamentalTypes.Flags'
 newtype DisplayModeCreateFlagsKHR = DisplayModeCreateFlagsKHR Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
@@ -2010,7 +2035,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display VK_KHR_display>,
--- 'DisplaySurfaceCreateInfoKHR'
+-- 'DisplaySurfaceCreateInfoKHR', 'Vulkan.Core10.FundamentalTypes.Flags'
 newtype DisplaySurfaceCreateFlagsKHR = DisplaySurfaceCreateFlagsKHR Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_display - instance extension
 --
--- == VK_KHR_display
+-- = VK_KHR_display
 --
 -- [__Name String__]
 --     @VK_KHR_display@
@@ -286,14 +286,12 @@
 --
 -- == Examples
 --
--- Note
---
 -- The example code for the @VK_KHR_display@ and @VK_KHR_display_swapchain@
 -- extensions was removed from the appendix after revision 1.0.43. The
 -- display enumeration example code was ported to the cube demo that is
 -- shipped with the official Khronos SDK, and is being kept up-to-date in
 -- that location (see:
--- <https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c>).
+-- <https://github.com/KhronosGroup/Vulkan-Tools/blob/main/cube/cube.c>).
 --
 -- == Version History
 --
@@ -492,19 +490,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Extensions.Handles.DisplayKHR', 'DisplayModeCreateFlagsKHR',
--- 'DisplayModeCreateInfoKHR', 'Vulkan.Extensions.Handles.DisplayModeKHR',
--- 'DisplayModeParametersKHR', 'DisplayModePropertiesKHR',
--- 'DisplayPlaneAlphaFlagBitsKHR', 'DisplayPlaneAlphaFlagsKHR',
--- 'DisplayPlaneCapabilitiesKHR', 'DisplayPlanePropertiesKHR',
--- 'DisplayPropertiesKHR', 'DisplaySurfaceCreateFlagsKHR',
--- 'DisplaySurfaceCreateInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_surface.SurfaceTransformFlagsKHR',
--- 'createDisplayModeKHR', 'createDisplayPlaneSurfaceKHR',
--- 'getDisplayModePropertiesKHR', 'getDisplayPlaneCapabilitiesKHR',
--- 'getDisplayPlaneSupportedDisplaysKHR',
--- 'getPhysicalDeviceDisplayPlanePropertiesKHR',
--- 'getPhysicalDeviceDisplayPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -525,7 +511,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 DisplayModeCreateInfoKHR
 
 instance ToCStruct DisplayModeCreateInfoKHR
@@ -574,10 +563,13 @@
 instance FromCStruct DisplayPropertiesKHR
 
 
-data DisplaySurfaceCreateInfoKHR
+type role DisplaySurfaceCreateInfoKHR nominal
+data DisplaySurfaceCreateInfoKHR (es :: [Type])
 
-instance ToCStruct DisplaySurfaceCreateInfoKHR
-instance Show DisplaySurfaceCreateInfoKHR
+instance ( Extendss DisplaySurfaceCreateInfoKHR es
+         , PokeChain es ) => ToCStruct (DisplaySurfaceCreateInfoKHR es)
+instance Show (Chain es) => Show (DisplaySurfaceCreateInfoKHR es)
 
-instance FromCStruct DisplaySurfaceCreateInfoKHR
+instance ( Extendss DisplaySurfaceCreateInfoKHR es
+         , PeekChain es ) => FromCStruct (DisplaySurfaceCreateInfoKHR es)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_display_swapchain - device extension
 --
--- == VK_KHR_display_swapchain
+-- = VK_KHR_display_swapchain
 --
 -- [__Name String__]
 --     @VK_KHR_display_swapchain@
@@ -128,14 +128,12 @@
 --
 -- == Examples
 --
--- Note
---
 -- The example code for the @VK_KHR_display@ and @VK_KHR_display_swapchain@
 -- extensions was removed from the appendix after revision 1.0.43. The
 -- display swapchain creation example code was ported to the cube demo that
 -- is shipped with the official Khronos SDK, and is being kept up-to-date
 -- in that location (see:
--- <https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c>).
+-- <https://github.com/KhronosGroup/Vulkan-Tools/blob/main/cube/cube.c>).
 --
 -- == Version History
 --
@@ -194,7 +192,7 @@
 --
 -- == See Also
 --
--- 'DisplayPresentInfoKHR', 'createSharedSwapchainsKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_display_swapchain - device extension
 --
--- == VK_KHR_display_swapchain
+-- = VK_KHR_display_swapchain
 --
 -- [__Name String__]
 --     @VK_KHR_display_swapchain@
@@ -128,14 +128,12 @@
 --
 -- == Examples
 --
--- Note
---
 -- The example code for the @VK_KHR_display@ and @VK_KHR_display_swapchain@
 -- extensions was removed from the appendix after revision 1.0.43. The
 -- display swapchain creation example code was ported to the cube demo that
 -- is shipped with the official Khronos SDK, and is being kept up-to-date
 -- in that location (see:
--- <https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c>).
+-- <https://github.com/KhronosGroup/Vulkan-Tools/blob/main/cube/cube.c>).
 --
 -- == Version History
 --
@@ -194,7 +192,7 @@
 --
 -- == See Also
 --
--- 'DisplayPresentInfoKHR', 'createSharedSwapchainsKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_draw_indirect_count - device extension
 --
--- == VK_KHR_draw_indirect_count
+-- = VK_KHR_draw_indirect_count
 --
 -- [__Name String__]
 --     @VK_KHR_draw_indirect_count@
@@ -69,11 +69,11 @@
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
 -- the KHR suffix omitted. However, if Vulkan 1.2 is supported and this
--- extension is not, the entry points
+-- extension is not, the commands
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndirectCount'
 -- and
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndexedIndirectCount'
--- are optional. The original type, enum and command names are still
+-- are optional. The original type, enum, and command names are still
 -- available as aliases of the core functionality.
 --
 -- == New Commands
@@ -96,7 +96,7 @@
 --
 -- == See Also
 --
--- 'cmdDrawIndexedIndirectCountKHR', 'cmdDrawIndirectCountKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_driver_properties - device extension
 --
--- == VK_KHR_driver_properties
+-- = VK_KHR_driver_properties
 --
 -- [__Name String__]
 --     @VK_KHR_driver_properties@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -66,7 +68,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -130,10 +132,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.MAX_DRIVER_INFO_SIZE_KHR',
--- 'Vulkan.Core10.APIConstants.MAX_DRIVER_NAME_SIZE_KHR',
--- 'ConformanceVersionKHR', 'DriverIdKHR',
--- 'PhysicalDeviceDriverPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_dynamic_rendering - device extension
 --
--- == VK_KHR_dynamic_rendering
+-- = VK_KHR_dynamic_rendering
 --
 -- [__Name String__]
 --     @VK_KHR_dynamic_rendering@
@@ -21,21 +21,16 @@
 --     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>
---
--- [__API Interactions__]
---
---     -   Interacts with VK_AMD_mixed_attachment_samples
---
---     -   Interacts with VK_EXT_fragment_density_map
---
---     -   Interacts with VK_KHR_fragment_shading_rate
---
---     -   Interacts with VK_NVX_multiview_per_view_attributes
---
---     -   Interacts with VK_NV_framebuffer_mixed_samples
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolve VK_KHR_depth_stencil_resolve>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__Deprecation State__]
 --
@@ -122,55 +117,6 @@
 --
 --     -   'PhysicalDeviceDynamicRenderingFeaturesKHR'
 --
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>
--- is supported:
---
--- -   Extending
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':
---
---     -   'AttachmentSampleCountInfoAMD'
---
--- 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
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':
---
---     -   'RenderingFragmentDensityMapAttachmentInfoEXT'
---
--- 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
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':
---
---     -   'RenderingFragmentShadingRateAttachmentInfoKHR'
---
--- 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.CommandBuffer.CommandBufferInheritanceInfo',
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':
---
---     -   'AttachmentSampleCountInfoNV'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>
--- is supported:
---
--- -   Extending
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':
---
---     -   'MultiviewPerViewAttributesInfoNVX'
---
 -- == New Enums
 --
 -- -   'RenderingFlagBitsKHR'
@@ -201,65 +147,13 @@
 --
 --     -   'STRUCTURE_TYPE_RENDERING_INFO_KHR'
 --
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>
--- is supported:
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD'
---
--- 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
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':
---
---     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
---
---     -   'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_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
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':
---
---     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---
---     -   'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'
---
--- 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.StructureType.StructureType':
---
---     -   'STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>
--- is supported:
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX'
---
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- KHR suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- KHR suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Version History
 --
@@ -269,11 +163,7 @@
 --
 -- == See Also
 --
--- 'CommandBufferInheritanceRenderingInfoKHR',
--- 'PhysicalDeviceDynamicRenderingFeaturesKHR',
--- 'PipelineRenderingCreateInfoKHR', 'RenderingAttachmentInfoKHR',
--- 'RenderingFlagBitsKHR', 'RenderingFlagsKHR', 'RenderingInfoKHR',
--- 'cmdBeginRenderingKHR', 'cmdEndRenderingKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -288,15 +178,8 @@
                                                    , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR
                                                    , pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR
                                                    , pattern ATTACHMENT_STORE_OP_NONE_KHR
-                                                   , pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
-                                                   , pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
-                                                   , pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV
                                                    , cmdBeginRenderingKHR
                                                    , cmdEndRenderingKHR
-                                                   , RenderingFragmentShadingRateAttachmentInfoKHR(..)
-                                                   , RenderingFragmentDensityMapAttachmentInfoEXT(..)
-                                                   , AttachmentSampleCountInfoAMD(..)
-                                                   , MultiviewPerViewAttributesInfoNVX(..)
                                                    , RenderingFlagsKHR
                                                    , RenderingFlagBitsKHR
                                                    , PipelineRenderingCreateInfoKHR
@@ -304,69 +187,27 @@
                                                    , RenderingAttachmentInfoKHR
                                                    , PhysicalDeviceDynamicRenderingFeaturesKHR
                                                    , CommandBufferInheritanceRenderingInfoKHR
-                                                   , AttachmentSampleCountInfoNV
                                                    , KHR_DYNAMIC_RENDERING_SPEC_VERSION
                                                    , pattern KHR_DYNAMIC_RENDERING_SPEC_VERSION
                                                    , KHR_DYNAMIC_RENDERING_EXTENSION_NAME
                                                    , pattern KHR_DYNAMIC_RENDERING_EXTENSION_NAME
                                                    ) where
 
-import Foreign.Marshal.Alloc (allocaBytes)
-import Foreign.Ptr (nullPtr)
-import Foreign.Ptr (plusPtr)
-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 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 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.Core13.Promoted_From_VK_KHR_dynamic_rendering (cmdBeginRendering)
 import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (cmdEndRendering)
-import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (CommandBufferInheritanceRenderingInfo)
-import Vulkan.Core10.FundamentalTypes (Extent2D)
-import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
-import Vulkan.Core10.Handles (ImageView)
 import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures)
 import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PipelineRenderingCreateInfo)
 import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingAttachmentInfo)
 import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlagBits)
 import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlags)
 import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingInfo)
-import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)
-import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp(ATTACHMENT_STORE_OP_NONE))
-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT))
-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_INFO))
 -- No documentation found for TopLevel "VK_STRUCTURE_TYPE_RENDERING_INFO_KHR"
 pattern STRUCTURE_TYPE_RENDERING_INFO_KHR = STRUCTURE_TYPE_RENDERING_INFO
@@ -392,18 +233,6 @@
 pattern ATTACHMENT_STORE_OP_NONE_KHR = ATTACHMENT_STORE_OP_NONE
 
 
--- No documentation found for TopLevel "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"
-pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
-
-
--- No documentation found for TopLevel "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"
-pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
-
-
--- No documentation found for TopLevel "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV"
-pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
-
-
 -- No documentation found for TopLevel "vkCmdBeginRenderingKHR"
 cmdBeginRenderingKHR = cmdBeginRendering
 
@@ -412,450 +241,6 @@
 cmdEndRenderingKHR = cmdEndRendering
 
 
--- | VkRenderingFragmentShadingRateAttachmentInfoKHR - Structure specifying
--- fragment shading rate attachment information
---
--- = Description
---
--- This structure can be included in the @pNext@ chain of
--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo' to
--- define a
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.
--- If @imageView@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', or if this
--- structure is not specified, the implementation behaves as if a valid
--- shading rate attachment was specified with all texels specifying a
--- single pixel per fragment.
---
--- == Valid Usage
---
--- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06147#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     @layout@ /must/ be
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'
---
--- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06148#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it
---     /must/ have been created with
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---
--- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06149#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     @shadingRateAttachmentTexelSize.width@ /must/ be a power of two
---     value
---
--- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06150#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal
---     to
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.width>
---
--- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06151#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     @shadingRateAttachmentTexelSize.width@ /must/ be greater than or
---     equal to
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width>
---
--- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     @shadingRateAttachmentTexelSize.height@ /must/ be a power of two
---     value
---
--- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06153#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal
---     to
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.height>
---
--- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06154#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     @shadingRateAttachmentTexelSize.height@ /must/ be greater than or
---     equal to
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.height>
---
--- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06155#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the
---     quotient of @shadingRateAttachmentTexelSize.width@ and
---     @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal
---     to
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>
---
--- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06156#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the
---     quotient of @shadingRateAttachmentTexelSize.height@ and
---     @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal
---     to
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sType#
---     @sType@ /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'
---
--- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-parameter#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'
---     handle
---
--- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageLayout-parameter#
---     @imageLayout@ /must/ be a valid
---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>,
--- 'Vulkan.Core10.FundamentalTypes.Extent2D',
--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',
--- 'Vulkan.Core10.Handles.ImageView',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data RenderingFragmentShadingRateAttachmentInfoKHR = RenderingFragmentShadingRateAttachmentInfoKHR
-  { -- | @imageView@ is the image view that will be used as a fragment shading
-    -- rate attachment.
-    imageView :: ImageView
-  , -- | @imageLayout@ is the layout that @imageView@ will be in during
-    -- rendering.
-    imageLayout :: ImageLayout
-  , -- | @shadingRateAttachmentTexelSize@ specifies the number of pixels
-    -- corresponding to each texel in @imageView@.
-    shadingRateAttachmentTexelSize :: Extent2D
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (RenderingFragmentShadingRateAttachmentInfoKHR)
-#endif
-deriving instance Show RenderingFragmentShadingRateAttachmentInfoKHR
-
-instance ToCStruct RenderingFragmentShadingRateAttachmentInfoKHR where
-  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p RenderingFragmentShadingRateAttachmentInfoKHR{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)
-    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)
-    poke ((p `plusPtr` 28 :: Ptr Extent2D)) (shadingRateAttachmentTexelSize)
-    f
-  cStructSize = 40
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)
-    poke ((p `plusPtr` 28 :: Ptr Extent2D)) (zero)
-    f
-
-instance FromCStruct RenderingFragmentShadingRateAttachmentInfoKHR where
-  peekCStruct p = do
-    imageView <- peek @ImageView ((p `plusPtr` 16 :: Ptr ImageView))
-    imageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))
-    shadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 28 :: Ptr Extent2D))
-    pure $ RenderingFragmentShadingRateAttachmentInfoKHR
-             imageView imageLayout shadingRateAttachmentTexelSize
-
-instance Storable RenderingFragmentShadingRateAttachmentInfoKHR where
-  sizeOf ~_ = 40
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero RenderingFragmentShadingRateAttachmentInfoKHR where
-  zero = RenderingFragmentShadingRateAttachmentInfoKHR
-           zero
-           zero
-           zero
-
-
--- | VkRenderingFragmentDensityMapAttachmentInfoEXT - Structure specifying
--- fragment shading rate attachment information
---
--- = Description
---
--- This structure can be included in the @pNext@ chain of
--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo' to
--- define a fragment density map. If this structure is not included in the
--- @pNext@ chain, @imageView@ is treated as
--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'.
---
--- == Valid Usage
---
--- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06157#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     @layout@ /must/ be
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'
---
--- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it
---     /must/ have been created with
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT'
---
--- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06159#
---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it
---     /must/ not have been created with
---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
---
--- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-apiVersion-07908#
---     If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_multiview VK_KHR_multiview>
---     is not enabled,
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
---     is less than Vulkan 1.1, and @imageView@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ have a
---     @layerCount@ equal to @1@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-sType-sType#
---     @sType@ /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT'
---
--- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-parameter#
---     @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'
---     handle
---
--- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageLayout-parameter#
---     @imageLayout@ /must/ be a valid
---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,
--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',
--- 'Vulkan.Core10.Handles.ImageView',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data RenderingFragmentDensityMapAttachmentInfoEXT = RenderingFragmentDensityMapAttachmentInfoEXT
-  { -- | @imageView@ is the image view that will be used as a fragment density
-    -- map attachment.
-    imageView :: ImageView
-  , -- | @imageLayout@ is the layout that @imageView@ will be in during
-    -- rendering.
-    imageLayout :: ImageLayout
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (RenderingFragmentDensityMapAttachmentInfoEXT)
-#endif
-deriving instance Show RenderingFragmentDensityMapAttachmentInfoEXT
-
-instance ToCStruct RenderingFragmentDensityMapAttachmentInfoEXT where
-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p RenderingFragmentDensityMapAttachmentInfoEXT{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)
-    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)
-    f
-  cStructSize = 32
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr ImageView)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)
-    f
-
-instance FromCStruct RenderingFragmentDensityMapAttachmentInfoEXT where
-  peekCStruct p = do
-    imageView <- peek @ImageView ((p `plusPtr` 16 :: Ptr ImageView))
-    imageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))
-    pure $ RenderingFragmentDensityMapAttachmentInfoEXT
-             imageView imageLayout
-
-instance Storable RenderingFragmentDensityMapAttachmentInfoEXT where
-  sizeOf ~_ = 32
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero RenderingFragmentDensityMapAttachmentInfoEXT where
-  zero = RenderingFragmentDensityMapAttachmentInfoEXT
-           zero
-           zero
-
-
--- | VkAttachmentSampleCountInfoAMD - Structure specifying command buffer
--- inheritance info for dynamic render pass instances
---
--- = Description
---
--- If
--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@
--- is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
--- is specified in
--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@, and the
--- @pNext@ chain of
--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes
--- 'AttachmentSampleCountInfoAMD', then this structure defines the sample
--- counts of each attachment within the render pass instance. If
--- 'AttachmentSampleCountInfoAMD' is not included, the value of
--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@
--- is used as the sample count for each attachment. If
--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@
--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', or
--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
--- is not specified in
--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@,
--- parameters of this structure are ignored.
---
--- '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 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
--- 'Vulkan.Core10.Handles.RenderPass', the value of
--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@
--- is used as the sample count for each attachment. If a graphics pipeline
--- is created with a valid 'Vulkan.Core10.Handles.RenderPass', parameters
--- of this structure are ignored.
---
--- == Valid Usage (Implicit)
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,
--- <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.Enums.SampleCountFlagBits.SampleCountFlagBits',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data AttachmentSampleCountInfoAMD = AttachmentSampleCountInfoAMD
-  { -- | @pColorAttachmentSamples@ is a pointer to an array of
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values
-    -- defining the sample count of color attachments.
-    colorAttachmentSamples :: Vector SampleCountFlagBits
-  , -- | @depthStencilAttachmentSamples@ is a
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value
-    -- defining the sample count of a depth\/stencil attachment.
-    depthStencilAttachmentSamples :: SampleCountFlagBits
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (AttachmentSampleCountInfoAMD)
-#endif
-deriving instance Show AttachmentSampleCountInfoAMD
-
-instance ToCStruct AttachmentSampleCountInfoAMD where
-  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p AttachmentSampleCountInfoAMD{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentSamples)) :: Word32))
-    pPColorAttachmentSamples' <- ContT $ allocaBytes @SampleCountFlagBits ((Data.Vector.length (colorAttachmentSamples)) * 4)
-    lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentSamples' `plusPtr` (4 * (i)) :: Ptr SampleCountFlagBits) (e)) (colorAttachmentSamples)
-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SampleCountFlagBits))) (pPColorAttachmentSamples')
-    lift $ poke ((p `plusPtr` 32 :: Ptr SampleCountFlagBits)) (depthStencilAttachmentSamples)
-    lift $ f
-  cStructSize = 40
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    f
-
-instance FromCStruct AttachmentSampleCountInfoAMD where
-  peekCStruct p = do
-    colorAttachmentCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
-    pColorAttachmentSamples <- peek @(Ptr SampleCountFlagBits) ((p `plusPtr` 24 :: Ptr (Ptr SampleCountFlagBits)))
-    pColorAttachmentSamples' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @SampleCountFlagBits ((pColorAttachmentSamples `advancePtrBytes` (4 * (i)) :: Ptr SampleCountFlagBits)))
-    depthStencilAttachmentSamples <- peek @SampleCountFlagBits ((p `plusPtr` 32 :: Ptr SampleCountFlagBits))
-    pure $ AttachmentSampleCountInfoAMD
-             pColorAttachmentSamples' depthStencilAttachmentSamples
-
-instance Zero AttachmentSampleCountInfoAMD where
-  zero = AttachmentSampleCountInfoAMD
-           mempty
-           zero
-
-
--- | VkMultiviewPerViewAttributesInfoNVX - Structure specifying the multiview
--- per-attribute properties
---
--- = Description
---
--- When dynamic render pass instances are being used, instead of specifying
--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX'
--- or
--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX'
--- in the subpass description flags, the per-attribute properties of the
--- render pass instance /must/ be specified by the
--- 'MultiviewPerViewAttributesInfoNVX' structure Include the
--- 'MultiviewPerViewAttributesInfoNVX' structure in the @pNext@ chain of
--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' when creating a
--- graphics pipeline for dynamic rendering,
--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
--- when starting a dynamic render pass instance, and
--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' when
--- specifying the dynamic render pass instance parameters for secondary
--- command buffers.
---
--- == Valid Usage (Implicit)
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data MultiviewPerViewAttributesInfoNVX = MultiviewPerViewAttributesInfoNVX
-  { -- | @perViewAttributes@ specifies that shaders compiled for this pipeline
-    -- write the attributes for all views in a single invocation of each vertex
-    -- processing stage. All pipelines executed within a render pass instance
-    -- that includes this bit /must/ write per-view attributes to the
-    -- @*PerViewNV[]@ shader outputs, in addition to the non-per-view (e.g.
-    -- @Position@) outputs.
-    perViewAttributes :: Bool
-  , -- | @perViewAttributesPositionXOnly@ specifies that shaders compiled for
-    -- this pipeline use per-view positions which only differ in value in the x
-    -- component. Per-view viewport mask /can/ also be used.
-    perViewAttributesPositionXOnly :: Bool
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (MultiviewPerViewAttributesInfoNVX)
-#endif
-deriving instance Show MultiviewPerViewAttributesInfoNVX
-
-instance ToCStruct MultiviewPerViewAttributesInfoNVX where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p MultiviewPerViewAttributesInfoNVX{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (perViewAttributes))
-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (perViewAttributesPositionXOnly))
-    f
-  cStructSize = 24
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX)
-    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 MultiviewPerViewAttributesInfoNVX where
-  peekCStruct p = do
-    perViewAttributes <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
-    perViewAttributesPositionXOnly <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
-    pure $ MultiviewPerViewAttributesInfoNVX
-             (bool32ToBool perViewAttributes)
-             (bool32ToBool perViewAttributesPositionXOnly)
-
-instance Storable MultiviewPerViewAttributesInfoNVX where
-  sizeOf ~_ = 24
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero MultiviewPerViewAttributesInfoNVX where
-  zero = MultiviewPerViewAttributesInfoNVX
-           zero
-           zero
-
-
 -- No documentation found for TopLevel "VkRenderingFlagsKHR"
 type RenderingFlagsKHR = RenderingFlags
 
@@ -882,10 +267,6 @@
 
 -- No documentation found for TopLevel "VkCommandBufferInheritanceRenderingInfoKHR"
 type CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfo
-
-
--- No documentation found for TopLevel "VkAttachmentSampleCountInfoNV"
-type AttachmentSampleCountInfoNV = AttachmentSampleCountInfoAMD
 
 
 type KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1
diff --git a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot
deleted file mode 100644
--- a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot
+++ /dev/null
@@ -1,325 +0,0 @@
-{-# language CPP #-}
--- | = Name
---
--- VK_KHR_dynamic_rendering - device extension
---
--- == VK_KHR_dynamic_rendering
---
--- [__Name String__]
---     @VK_KHR_dynamic_rendering@
---
--- [__Extension Type__]
---     Device extension
---
--- [__Registered Extension Number__]
---     45
---
--- [__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>
---
--- [__API Interactions__]
---
---     -   Interacts with VK_AMD_mixed_attachment_samples
---
---     -   Interacts with VK_EXT_fragment_density_map
---
---     -   Interacts with VK_KHR_fragment_shading_rate
---
---     -   Interacts with VK_NVX_multiview_per_view_attributes
---
---     -   Interacts with VK_NV_framebuffer_mixed_samples
---
--- [__Deprecation State__]
---
---     -   /Promoted/ to
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
---
--- [__Contact__]
---
---     -   Tobias Hector
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_dynamic_rendering] @tobski%0A*Here describe the issue or question you have about the VK_KHR_dynamic_rendering extension* >
---
--- [__Extension Proposal__]
---     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_dynamic_rendering.adoc VK_KHR_dynamic_rendering>
---
--- == Other Extension Metadata
---
--- [__Last Modified Date__]
---     2021-10-06
---
--- [__Contributors__]
---
---     -   Tobias Hector, AMD
---
---     -   Arseny Kapoulkine, Roblox
---
---     -   François Duranleau, Gameloft
---
---     -   Stuart Smith, AMD
---
---     -   Hai Nguyen, Google
---
---     -   Jean-François Roy, Google
---
---     -   Jeff Leger, Qualcomm
---
---     -   Jan-Harald Fredriksen, Arm
---
---     -   Piers Daniell, Nvidia
---
---     -   James Fitzpatrick, Imagination
---
---     -   Piotr Byszewski, Mobica
---
---     -   Jesse Hall, Google
---
---     -   Mike Blumenkrantz, Valve
---
--- == Description
---
--- This extension allows applications to create single-pass render pass
--- instances without needing to create render pass objects or framebuffers.
--- Dynamic render passes can also span across multiple primary command
--- buffers, rather than relying on secondary command buffers.
---
--- This extension also incorporates 'ATTACHMENT_STORE_OP_NONE_KHR' from
--- @VK_QCOM_render_pass_store_ops@, enabling applications to avoid
--- unnecessary synchronization when an attachment is not written during a
--- render pass.
---
--- == New Commands
---
--- -   'cmdBeginRenderingKHR'
---
--- -   'cmdEndRenderingKHR'
---
--- == New Structures
---
--- -   'RenderingAttachmentInfoKHR'
---
--- -   'RenderingInfoKHR'
---
--- -   Extending
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo':
---
---     -   'CommandBufferInheritanceRenderingInfoKHR'
---
--- -   Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':
---
---     -   'PipelineRenderingCreateInfoKHR'
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
---     'Vulkan.Core10.Device.DeviceCreateInfo':
---
---     -   'PhysicalDeviceDynamicRenderingFeaturesKHR'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>
--- is supported:
---
--- -   Extending
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':
---
---     -   'AttachmentSampleCountInfoAMD'
---
--- 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
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':
---
---     -   'RenderingFragmentDensityMapAttachmentInfoEXT'
---
--- 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
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':
---
---     -   'RenderingFragmentShadingRateAttachmentInfoKHR'
---
--- 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.CommandBuffer.CommandBufferInheritanceInfo',
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':
---
---     -   'AttachmentSampleCountInfoNV'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>
--- is supported:
---
--- -   Extending
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':
---
---     -   'MultiviewPerViewAttributesInfoNVX'
---
--- == New Enums
---
--- -   'RenderingFlagBitsKHR'
---
--- == New Bitmasks
---
--- -   'RenderingFlagsKHR'
---
--- == New Enum Constants
---
--- -   'KHR_DYNAMIC_RENDERING_EXTENSION_NAME'
---
--- -   'KHR_DYNAMIC_RENDERING_SPEC_VERSION'
---
--- -   Extending 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp':
---
---     -   'ATTACHMENT_STORE_OP_NONE_KHR'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR'
---
---     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR'
---
---     -   'STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR'
---
---     -   'STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR'
---
---     -   'STRUCTURE_TYPE_RENDERING_INFO_KHR'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>
--- is supported:
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD'
---
--- 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
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':
---
---     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
---
---     -   'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_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
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':
---
---     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---
---     -   'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'
---
--- 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.StructureType.StructureType':
---
---     -   'STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>
--- is supported:
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX'
---
--- == Promotion to Vulkan 1.3
---
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- KHR suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
---
--- == Version History
---
--- -   Revision 1, 2021-10-06 (Tobias Hector)
---
---     -   Initial revision
---
--- == See Also
---
--- 'CommandBufferInheritanceRenderingInfoKHR',
--- 'PhysicalDeviceDynamicRenderingFeaturesKHR',
--- 'PipelineRenderingCreateInfoKHR', 'RenderingAttachmentInfoKHR',
--- 'RenderingFlagBitsKHR', 'RenderingFlagsKHR', 'RenderingInfoKHR',
--- 'cmdBeginRenderingKHR', 'cmdEndRenderingKHR'
---
--- == Document Notes
---
--- For more information, see the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_dynamic_rendering 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_dynamic_rendering  ( AttachmentSampleCountInfoAMD
-                                                   , MultiviewPerViewAttributesInfoNVX
-                                                   , RenderingFragmentDensityMapAttachmentInfoEXT
-                                                   , RenderingFragmentShadingRateAttachmentInfoKHR
-                                                   ) where
-
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (ToCStruct)
-import Data.Kind (Type)
-
-data AttachmentSampleCountInfoAMD
-
-instance ToCStruct AttachmentSampleCountInfoAMD
-instance Show AttachmentSampleCountInfoAMD
-
-instance FromCStruct AttachmentSampleCountInfoAMD
-
-
-data MultiviewPerViewAttributesInfoNVX
-
-instance ToCStruct MultiviewPerViewAttributesInfoNVX
-instance Show MultiviewPerViewAttributesInfoNVX
-
-instance FromCStruct MultiviewPerViewAttributesInfoNVX
-
-
-data RenderingFragmentDensityMapAttachmentInfoEXT
-
-instance ToCStruct RenderingFragmentDensityMapAttachmentInfoEXT
-instance Show RenderingFragmentDensityMapAttachmentInfoEXT
-
-instance FromCStruct RenderingFragmentDensityMapAttachmentInfoEXT
-
-
-data RenderingFragmentShadingRateAttachmentInfoKHR
-
-instance ToCStruct RenderingFragmentShadingRateAttachmentInfoKHR
-instance Show RenderingFragmentShadingRateAttachmentInfoKHR
-
-instance FromCStruct RenderingFragmentShadingRateAttachmentInfoKHR
-
diff --git a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering_local_read.hs b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering_local_read.hs
--- a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering_local_read.hs
+++ b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering_local_read.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_dynamic_rendering_local_read - device extension
 --
--- == VK_KHR_dynamic_rendering_local_read
+-- = VK_KHR_dynamic_rendering_local_read
 --
 -- [__Name String__]
 --     @VK_KHR_dynamic_rendering_local_read@
@@ -22,6 +22,8 @@
 --
 -- [__Extension and Version Dependencies__]
 --     <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 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -136,11 +138,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR',
--- 'RenderingAttachmentLocationInfoKHR',
--- 'RenderingInputAttachmentIndexInfoKHR',
--- 'cmdSetRenderingAttachmentLocationsKHR',
--- 'cmdSetRenderingInputAttachmentIndicesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -200,7 +198,6 @@
 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.Core10.Handles (CommandBuffer)
 import Vulkan.Core10.Handles (CommandBuffer(..))
@@ -225,9 +222,9 @@
 -- = Description
 --
 -- This command sets the attachment location mappings for subsequent
--- drawing commands, and /must/ match the mappings provided to the
--- currently bound pipeline, if one is bound, which /can/ be set by
--- chaining 'RenderingAttachmentLocationInfoKHR' to
+-- drawing commands, and /must/ match the mappings provided to the bound
+-- pipeline, if one is bound, which /can/ be set by chaining
+-- 'RenderingAttachmentLocationInfoKHR' to
 -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'.
 --
 -- Until this command is called, mappings in the command buffer state are
@@ -339,9 +336,9 @@
 -- = Description
 --
 -- This command sets the input attachment index mappings for subsequent
--- drawing commands, and /must/ match the mappings provided to the
--- currently bound pipeline, if one is bound, which /can/ be set by
--- chaining 'RenderingInputAttachmentIndexInfoKHR' to
+-- drawing commands, and /must/ match the mappings provided to the bound
+-- pipeline, if one is bound, which /can/ be set by chaining
+-- 'RenderingInputAttachmentIndexInfoKHR' to
 -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'.
 --
 -- Until this command is called, mappings in the command buffer state are
@@ -379,8 +376,8 @@
 --     @commandBuffer@ /must/ be a valid
 --     'Vulkan.Core10.Handles.CommandBuffer' handle
 --
--- -   #VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-pLocationInfo-parameter#
---     @pLocationInfo@ /must/ be a valid pointer to a valid
+-- -   #VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-pInputAttachmentIndexInfo-parameter#
+--     @pInputAttachmentIndexInfo@ /must/ be a valid pointer to a valid
 --     'RenderingInputAttachmentIndexInfoKHR' structure
 --
 -- -   #VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-commandBuffer-recording#
@@ -425,19 +422,20 @@
                                          => -- | @commandBuffer@ is the command buffer into which the command will be
                                             -- recorded.
                                             CommandBuffer
-                                         -> -- No documentation found for Nested "vkCmdSetRenderingInputAttachmentIndicesKHR" "pLocationInfo"
-                                            ("locationInfo" ::: RenderingInputAttachmentIndexInfoKHR)
+                                         -> -- | @pInputAttachmentIndexInfo@ is a 'RenderingInputAttachmentIndexInfoKHR'
+                                            -- structure indicating the new mappings.
+                                            RenderingInputAttachmentIndexInfoKHR
                                          -> io ()
 cmdSetRenderingInputAttachmentIndicesKHR commandBuffer
-                                           locationInfo = liftIO . evalContT $ do
+                                           inputAttachmentIndexInfo = liftIO . evalContT $ do
   let vkCmdSetRenderingInputAttachmentIndicesKHRPtr = pVkCmdSetRenderingInputAttachmentIndicesKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
   lift $ unless (vkCmdSetRenderingInputAttachmentIndicesKHRPtr /= nullFunPtr) $
     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetRenderingInputAttachmentIndicesKHR is null" Nothing Nothing
   let vkCmdSetRenderingInputAttachmentIndicesKHR' = mkVkCmdSetRenderingInputAttachmentIndicesKHR vkCmdSetRenderingInputAttachmentIndicesKHRPtr
-  pLocationInfo <- ContT $ withCStruct (locationInfo)
+  pInputAttachmentIndexInfo <- ContT $ withCStruct (inputAttachmentIndexInfo)
   lift $ traceAroundEvent "vkCmdSetRenderingInputAttachmentIndicesKHR" (vkCmdSetRenderingInputAttachmentIndicesKHR'
                                                                           (commandBufferHandle (commandBuffer))
-                                                                          pLocationInfo)
+                                                                          pInputAttachmentIndexInfo)
   pure $ ()
 
 
@@ -527,24 +525,39 @@
 -- element of @pColorAttachmentLocations@ set to any other value will map
 -- the specified location value to the color attachment specified in the
 -- render pass at the corresponding index in the
--- @pColorAttachmentLocations@ array. If @pColorAttachmentLocations@ is
--- @NULL@, it is equivalent to setting each element to its index within the
--- array. Any writes to a fragment output location that is not mapped to an
--- attachment /must/ be discarded.
+-- @pColorAttachmentLocations@ array. Any writes to a fragment output
+-- location that is not mapped to an attachment /must/ be discarded.
 --
+-- If @pColorAttachmentLocations@ is @NULL@, it is equivalent to setting
+-- each element to its index within the array.
+--
 -- This structure /can/ be included in the @pNext@ chain of a
 -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure to set
--- this state for a pipeline. This structure /can/ be included in the
--- @pNext@ chain of a
+-- this state for a pipeline. If this structure is not included in the
+-- @pNext@ chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it
+-- is equivalent to specifying this structure with the following
+-- properties:
+--
+-- -   @colorAttachmentCount@ set to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@.
+--
+-- -   @pColorAttachmentLocations@ set to @NULL@.
+--
+-- This structure /can/ be included in the @pNext@ chain of a
 -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' structure to
--- specify inherited state from the primary command buffer. If this
--- structure is not included in the @pNext@ chain of
--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' or
+-- specify inherited state from the primary command buffer. If
+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::renderPass
+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', or
+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
+-- is not specified in
+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::flags, members of
+-- this structure are ignored. If this structure is not included in the
+-- @pNext@ chain of
 -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo', it is
 -- equivalent to specifying this structure with the following properties:
 --
 -- -   @colorAttachmentCount@ set to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@.
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@colorAttachmentCount@.
 --
 -- -   @pColorAttachmentLocations@ set to @NULL@.
 --
@@ -554,8 +567,8 @@
 --     If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRenderingLocalRead dynamicRenderingLocalRead>
 --     feature is not enabled, and @pColorAttachmentLocations@ is not
---     @NULL@, each element /must/ be set to the value of its index within
---     the array
+--     @NULL@, each element /must/ be the value of its index within the
+--     array
 --
 -- -   #VUID-VkRenderingAttachmentLocationInfoKHR-pColorAttachmentLocations-09513#
 --     Elements of @pColorAttachmentLocations@ that are not
@@ -566,8 +579,7 @@
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxColorAttachments maxColorAttachments>
 --
 -- -   #VUID-VkRenderingAttachmentLocationInfoKHR-pColorAttachmentLocations-09515#
---     Each element of @pColorAttachmentLocations@ /must/ be less than or
---     equal to
+--     Each element of @pColorAttachmentLocations@ /must/ be less than
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxColorAttachments maxColorAttachments>
 --
 -- == Valid Usage (Implicit)
@@ -635,9 +647,11 @@
 -- corresponding attachment will not be used as an input attachment in this
 -- pipeline. Any other value in each of those elements will map the
 -- corresponding attachment to a @InputAttachmentIndex@ value defined in
--- shader code. If @pColorAttachmentInputIndices@ is @NULL@, it is
--- equivalent to setting each element to its index within the array.
+-- shader code.
 --
+-- If @pColorAttachmentInputIndices@ is @NULL@, it is equivalent to setting
+-- each element to its index within the array.
+--
 -- If @pDepthInputAttachmentIndex@ or @pStencilInputAttachmentIndex@ are
 -- set to @NULL@, they map to input attachments without a
 -- @InputAttachmentIndex@ decoration. If they point to a value of
@@ -648,17 +662,29 @@
 --
 -- This structure /can/ be included in the @pNext@ chain of a
 -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure to set
--- this state for a pipeline. This structure /can/ be included in the
--- @pNext@ chain of a
+-- this state for a pipeline. If this structure is not included in the
+-- @pNext@ chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it
+-- is equivalent to specifying this structure with the following
+-- properties:
+--
+-- -   @colorAttachmentCount@ set to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@.
+--
+-- -   @pColorAttachmentInputIndices@ set to @NULL@.
+--
+-- -   @pDepthInputAttachmentIndex@ set to @NULL@.
+--
+-- -   @pStencilInputAttachmentIndex@ set to @NULL@.
+--
+-- This structure /can/ be included in the @pNext@ chain of a
 -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' structure to
 -- specify inherited state from the primary command buffer. If this
 -- structure is not included in the @pNext@ chain of
--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' or
 -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo', it is
 -- equivalent to specifying this structure with the following properties:
 --
 -- -   @colorAttachmentCount@ set to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@.
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@colorAttachmentCount@.
 --
 -- -   @pColorAttachmentInputIndices@ set to @NULL@.
 --
@@ -672,7 +698,7 @@
 --     If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRenderingLocalRead dynamicRenderingLocalRead>
 --     feature is not enabled, and @pColorAttachmentInputIndices@ is not
---     @NULL@, each element /must/ be set to
+--     @NULL@, each element /must/ be
 --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'
 --
 -- -   #VUID-VkRenderingInputAttachmentIndexInfoKHR-dynamicRenderingLocalRead-09520#
@@ -744,11 +770,11 @@
     colorAttachmentInputIndices :: Vector Word32
   , -- | @pDepthInputAttachmentIndex@ is either @NULL@, or a pointer to a
     -- @uint32_t@ value defining the index for the depth attachment to be used
-    -- an an input attachment.
+    -- as an input attachment.
     depthInputAttachmentIndex :: Maybe Word32
   , -- | @pStencilInputAttachmentIndex@ is either @NULL@, or a pointer to a
     -- @uint32_t@ value defining the index for the stencil attachment to be
-    -- used an an input attachment.
+    -- used as an input attachment.
     stencilInputAttachmentIndex :: Maybe Word32
   }
   deriving (Typeable)
diff --git a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering_local_read.hs-boot b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering_local_read.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering_local_read.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering_local_read.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_dynamic_rendering_local_read - device extension
 --
--- == VK_KHR_dynamic_rendering_local_read
+-- = VK_KHR_dynamic_rendering_local_read
 --
 -- [__Name String__]
 --     @VK_KHR_dynamic_rendering_local_read@
@@ -22,6 +22,8 @@
 --
 -- [__Extension and Version Dependencies__]
 --     <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 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -136,11 +138,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR',
--- 'RenderingAttachmentLocationInfoKHR',
--- 'RenderingInputAttachmentIndexInfoKHR',
--- 'cmdSetRenderingAttachmentLocationsKHR',
--- 'cmdSetRenderingInputAttachmentIndicesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_fence - device extension
 --
--- == VK_KHR_external_fence
+-- = VK_KHR_external_fence
 --
 -- [__Name String__]
 --     @VK_KHR_external_fence@
@@ -63,7 +63,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -109,8 +109,7 @@
 --
 -- == See Also
 --
--- 'ExportFenceCreateInfoKHR', 'FenceImportFlagBitsKHR',
--- 'FenceImportFlagsKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_fence_capabilities - instance extension
 --
--- == VK_KHR_external_fence_capabilities
+-- = VK_KHR_external_fence_capabilities
 --
 -- [__Name String__]
 --     @VK_KHR_external_fence_capabilities@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -65,7 +67,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -137,12 +139,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.LUID_SIZE_KHR',
--- 'ExternalFenceFeatureFlagBitsKHR', 'ExternalFenceFeatureFlagsKHR',
--- 'ExternalFenceHandleTypeFlagBitsKHR', 'ExternalFenceHandleTypeFlagsKHR',
--- 'ExternalFencePropertiesKHR', 'PhysicalDeviceExternalFenceInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_external_memory_capabilities.PhysicalDeviceIDPropertiesKHR',
--- 'getPhysicalDeviceExternalFencePropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_fence_fd - device extension
 --
--- == VK_KHR_external_fence_fd
+-- = VK_KHR_external_fence_fd
 --
 -- [__Name String__]
 --     @VK_KHR_external_fence_fd@
@@ -23,7 +23,7 @@
 -- [__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
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -95,8 +95,7 @@
 --
 -- == See Also
 --
--- 'FenceGetFdInfoKHR', 'ImportFenceFdInfoKHR', 'getFenceFdKHR',
--- 'importFenceFdKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -187,8 +186,6 @@
 -- the application /must/ release ownership of the file descriptor when it
 -- is no longer needed.
 --
--- Note
---
 -- Ownership can be released in many ways. For example, the application can
 -- call @close@() on the file descriptor, or transfer ownership back to
 -- Vulkan by using the file descriptor to import a fence payload.
@@ -356,8 +353,6 @@
 -- operation will succeed and the 'Vulkan.Core10.Handles.Fence' will have a
 -- temporarily imported payload as if a valid file descriptor had been
 -- provided.
---
--- Note
 --
 -- This special behavior for importing an invalid sync file descriptor
 -- allows easier interoperability with other system APIs which use the
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_fence_fd - device extension
 --
--- == VK_KHR_external_fence_fd
+-- = VK_KHR_external_fence_fd
 --
 -- [__Name String__]
 --     @VK_KHR_external_fence_fd@
@@ -23,7 +23,7 @@
 -- [__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
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -95,8 +95,7 @@
 --
 -- == See Also
 --
--- 'FenceGetFdInfoKHR', 'ImportFenceFdInfoKHR', 'getFenceFdKHR',
--- 'importFenceFdKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_fence_win32 - device extension
 --
--- == VK_KHR_external_fence_win32
+-- = VK_KHR_external_fence_win32
 --
 -- [__Name String__]
 --     @VK_KHR_external_fence_win32@
@@ -111,9 +111,7 @@
 --
 -- == See Also
 --
--- 'ExportFenceWin32HandleInfoKHR', 'FenceGetWin32HandleInfoKHR',
--- 'ImportFenceWin32HandleInfoKHR', 'getFenceWin32HandleKHR',
--- 'importFenceWin32HandleKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -486,9 +484,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 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
+-- chain, or it is included but @pAttributes@ is @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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_fence_win32 - device extension
 --
--- == VK_KHR_external_fence_win32
+-- = VK_KHR_external_fence_win32
 --
 -- [__Name String__]
 --     @VK_KHR_external_fence_win32@
@@ -111,9 +111,7 @@
 --
 -- == See Also
 --
--- 'ExportFenceWin32HandleInfoKHR', 'FenceGetWin32HandleInfoKHR',
--- 'ImportFenceWin32HandleInfoKHR', 'getFenceWin32HandleKHR',
--- 'importFenceWin32HandleKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_memory - device extension
 --
--- == VK_KHR_external_memory
+-- = VK_KHR_external_memory
 --
 -- [__Name String__]
 --     @VK_KHR_external_memory@
@@ -22,6 +22,8 @@
 --
 -- [__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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -83,7 +85,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -324,9 +326,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL_KHR',
--- 'ExportMemoryAllocateInfoKHR', 'ExternalMemoryBufferCreateInfoKHR',
--- 'ExternalMemoryImageCreateInfoKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_memory_capabilities - instance extension
 --
--- == VK_KHR_external_memory_capabilities
+-- = VK_KHR_external_memory_capabilities
 --
 -- [__Name String__]
 --     @VK_KHR_external_memory_capabilities@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -67,7 +69,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -222,15 +224,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.LUID_SIZE_KHR',
--- 'ExternalBufferPropertiesKHR', 'ExternalImageFormatPropertiesKHR',
--- 'ExternalMemoryFeatureFlagBitsKHR', 'ExternalMemoryFeatureFlagsKHR',
--- 'ExternalMemoryHandleTypeFlagBitsKHR',
--- 'ExternalMemoryHandleTypeFlagsKHR', 'ExternalMemoryPropertiesKHR',
--- 'PhysicalDeviceExternalBufferInfoKHR',
--- 'PhysicalDeviceExternalImageFormatInfoKHR',
--- 'PhysicalDeviceIDPropertiesKHR',
--- 'getPhysicalDeviceExternalBufferPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_memory_fd - device extension
 --
--- == VK_KHR_external_memory_fd
+-- = VK_KHR_external_memory_fd
 --
 -- [__Name String__]
 --     @VK_KHR_external_memory_fd@
@@ -23,7 +23,7 @@
 -- [__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
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -116,8 +116,7 @@
 --
 -- == See Also
 --
--- 'ImportMemoryFdInfoKHR', 'MemoryFdPropertiesKHR', 'MemoryGetFdInfoKHR',
--- 'getMemoryFdKHR', 'getMemoryFdPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -504,8 +503,6 @@
 -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'
 -- for a description of the properties of the defined external memory
 -- handle types.
---
--- Note
 --
 -- The size of the exported file /may/ be larger than the size requested by
 -- 'Vulkan.Core10.Memory.MemoryAllocateInfo'::@allocationSize@. If
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_memory_fd - device extension
 --
--- == VK_KHR_external_memory_fd
+-- = VK_KHR_external_memory_fd
 --
 -- [__Name String__]
 --     @VK_KHR_external_memory_fd@
@@ -23,7 +23,7 @@
 -- [__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
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -116,8 +116,7 @@
 --
 -- == See Also
 --
--- 'ImportMemoryFdInfoKHR', 'MemoryFdPropertiesKHR', 'MemoryGetFdInfoKHR',
--- 'getMemoryFdKHR', 'getMemoryFdPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_memory_win32 - device extension
 --
--- == VK_KHR_external_memory_win32
+-- = VK_KHR_external_memory_win32
 --
 -- [__Name String__]
 --     @VK_KHR_external_memory_win32@
@@ -22,6 +22,8 @@
 --
 -- [__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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -93,11 +95,11 @@
 -- from 'getMemoryWin32HandleKHR' when @handleType@ is
 -- 'Vulkan.Extensions.VK_KHR_external_memory_capabilities.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR'?
 --
--- __RESOLVED__: Yes, unless it is passed back in to another driver
--- instance to import the object. A successful get call transfers ownership
--- of the handle to the application. Destroying the memory object will not
--- destroy the handle or the handle’s reference to the underlying memory
--- resource.
+-- __RESOLVED__: Yes. A successful get call transfers ownership of the
+-- handle to the application. Destroying the memory object will not destroy
+-- the handle or the handle’s reference to the underlying memory resource.
+-- Unlike file descriptor opaque handles, win32 opaque handle ownership can
+-- not be transferred back to a driver by an import operation.
 --
 -- 2) Should the language regarding KMT\/Windows 7 handles be moved to a
 -- separate extension so that it can be deprecated over time?
@@ -124,9 +126,7 @@
 --
 -- == See Also
 --
--- 'ExportMemoryWin32HandleInfoKHR', 'ImportMemoryWin32HandleInfoKHR',
--- 'MemoryGetWin32HandleInfoKHR', 'MemoryWin32HandlePropertiesKHR',
--- 'getMemoryWin32HandleKHR', 'getMemoryWin32HandlePropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -227,8 +227,6 @@
 -- /must/ release ownership of them using the @CloseHandle@ system call
 -- when they are no longer needed.
 --
--- Note
---
 -- Non-NT handle types do not add a reference to their associated payload.
 -- If the original object owning the payload is destroyed, all resources
 -- and handles sharing that payload will become invalid.
@@ -363,8 +361,6 @@
 -- using the @CloseHandle@ system call when the handle is no longer needed.
 -- For handle types defined as NT handles, the imported memory object holds
 -- a reference to its payload.
---
--- Note
 --
 -- Non-NT handle import operations do not add a reference to their
 -- associated payload. If the original object owning the payload is
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_memory_win32 - device extension
 --
--- == VK_KHR_external_memory_win32
+-- = VK_KHR_external_memory_win32
 --
 -- [__Name String__]
 --     @VK_KHR_external_memory_win32@
@@ -22,6 +22,8 @@
 --
 -- [__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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -93,11 +95,11 @@
 -- from 'getMemoryWin32HandleKHR' when @handleType@ is
 -- 'Vulkan.Extensions.VK_KHR_external_memory_capabilities.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR'?
 --
--- __RESOLVED__: Yes, unless it is passed back in to another driver
--- instance to import the object. A successful get call transfers ownership
--- of the handle to the application. Destroying the memory object will not
--- destroy the handle or the handle’s reference to the underlying memory
--- resource.
+-- __RESOLVED__: Yes. A successful get call transfers ownership of the
+-- handle to the application. Destroying the memory object will not destroy
+-- the handle or the handle’s reference to the underlying memory resource.
+-- Unlike file descriptor opaque handles, win32 opaque handle ownership can
+-- not be transferred back to a driver by an import operation.
 --
 -- 2) Should the language regarding KMT\/Windows 7 handles be moved to a
 -- separate extension so that it can be deprecated over time?
@@ -124,9 +126,7 @@
 --
 -- == See Also
 --
--- 'ExportMemoryWin32HandleInfoKHR', 'ImportMemoryWin32HandleInfoKHR',
--- 'MemoryGetWin32HandleInfoKHR', 'MemoryWin32HandlePropertiesKHR',
--- 'getMemoryWin32HandleKHR', 'getMemoryWin32HandlePropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_semaphore - device extension
 --
--- == VK_KHR_external_semaphore
+-- = VK_KHR_external_semaphore
 --
 -- [__Name String__]
 --     @VK_KHR_external_semaphore@
@@ -69,7 +69,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -130,8 +130,7 @@
 --
 -- == See Also
 --
--- 'ExportSemaphoreCreateInfoKHR', 'SemaphoreImportFlagBitsKHR',
--- 'SemaphoreImportFlagsKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_semaphore_capabilities - instance extension
 --
--- == VK_KHR_external_semaphore_capabilities
+-- = VK_KHR_external_semaphore_capabilities
 --
 -- [__Name String__]
 --     @VK_KHR_external_semaphore_capabilities@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -61,7 +63,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -135,14 +137,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.LUID_SIZE_KHR',
--- 'ExternalSemaphoreFeatureFlagBitsKHR',
--- 'ExternalSemaphoreFeatureFlagsKHR',
--- 'ExternalSemaphoreHandleTypeFlagBitsKHR',
--- 'ExternalSemaphoreHandleTypeFlagsKHR', 'ExternalSemaphorePropertiesKHR',
--- 'PhysicalDeviceExternalSemaphoreInfoKHR',
--- 'Vulkan.Extensions.VK_KHR_external_memory_capabilities.PhysicalDeviceIDPropertiesKHR',
--- 'getPhysicalDeviceExternalSemaphorePropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_semaphore_fd - device extension
 --
--- == VK_KHR_external_semaphore_fd
+-- = VK_KHR_external_semaphore_fd
 --
 -- [__Name String__]
 --     @VK_KHR_external_semaphore_fd@
@@ -23,7 +23,7 @@
 -- [__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
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -99,8 +99,7 @@
 --
 -- == See Also
 --
--- 'ImportSemaphoreFdInfoKHR', 'SemaphoreGetFdInfoKHR',
--- 'getSemaphoreFdKHR', 'importSemaphoreFdKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -191,8 +190,6 @@
 -- the application /must/ release ownership of the file descriptor when it
 -- is no longer needed.
 --
--- Note
---
 -- Ownership can be released in many ways. For example, the application can
 -- call @close@() on the file descriptor, or transfer ownership back to
 -- Vulkan by using the file descriptor to import a semaphore payload.
@@ -379,8 +376,6 @@
 -- operation will succeed and the 'Vulkan.Core10.Handles.Semaphore' will
 -- have a temporarily imported payload as if a valid file descriptor had
 -- been provided.
---
--- Note
 --
 -- This special behavior for importing an invalid sync file descriptor
 -- allows easier interoperability with other system APIs which use the
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_semaphore_fd - device extension
 --
--- == VK_KHR_external_semaphore_fd
+-- = VK_KHR_external_semaphore_fd
 --
 -- [__Name String__]
 --     @VK_KHR_external_semaphore_fd@
@@ -23,7 +23,7 @@
 -- [__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
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -99,8 +99,7 @@
 --
 -- == See Also
 --
--- 'ImportSemaphoreFdInfoKHR', 'SemaphoreGetFdInfoKHR',
--- 'getSemaphoreFdKHR', 'importSemaphoreFdKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_semaphore_win32 - device extension
 --
--- == VK_KHR_external_semaphore_win32
+-- = VK_KHR_external_semaphore_win32
 --
 -- [__Name String__]
 --     @VK_KHR_external_semaphore_win32@
@@ -93,11 +93,12 @@
 -- from 'getSemaphoreWin32HandleKHR' when @handleType@ is
 -- 'Vulkan.Extensions.VK_KHR_external_semaphore_capabilities.EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR'?
 --
--- __RESOLVED__: Yes, unless it is passed back in to another driver
--- instance to import the object. A successful get call transfers ownership
--- of the handle to the application. Destroying the semaphore object will
--- not destroy the handle or the handle’s reference to the underlying
--- semaphore resource.
+-- __RESOLVED__: Yes. A successful get call transfers ownership of the
+-- handle to the application. Destroying the semaphore object will not
+-- destroy the handle or the handle’s reference to the underlying semaphore
+-- resource. Unlike file descriptor opaque handles, win32 opaque handle
+-- ownership can not be transferred back to a driver by an import
+-- operation.
 --
 -- 2) Should the language regarding KMT\/Windows 7 handles be moved to a
 -- separate extension so that it can be deprecated over time?
@@ -135,9 +136,7 @@
 --
 -- == See Also
 --
--- 'D3D12FenceSubmitInfoKHR', 'ExportSemaphoreWin32HandleInfoKHR',
--- 'ImportSemaphoreWin32HandleInfoKHR', 'SemaphoreGetWin32HandleInfoKHR',
--- 'getSemaphoreWin32HandleKHR', 'importSemaphoreWin32HandleKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -561,11 +560,11 @@
 -- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo' with a Windows
 -- @handleType@, but either 'ExportSemaphoreWin32HandleInfoKHR' is not
 -- 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.
+-- @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:
 --
@@ -682,8 +681,6 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-payloads payload>
 -- referring to a Direct3D 12 fence, the implementation /must/ ignore the
 -- value in the @pWaitSemaphoreValues@ or @pSignalSemaphoreValues@ entry.
---
--- Note
 --
 -- As the introduction of the external semaphore handle type
 -- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT'
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_external_semaphore_win32 - device extension
 --
--- == VK_KHR_external_semaphore_win32
+-- = VK_KHR_external_semaphore_win32
 --
 -- [__Name String__]
 --     @VK_KHR_external_semaphore_win32@
@@ -93,11 +93,12 @@
 -- from 'getSemaphoreWin32HandleKHR' when @handleType@ is
 -- 'Vulkan.Extensions.VK_KHR_external_semaphore_capabilities.EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR'?
 --
--- __RESOLVED__: Yes, unless it is passed back in to another driver
--- instance to import the object. A successful get call transfers ownership
--- of the handle to the application. Destroying the semaphore object will
--- not destroy the handle or the handle’s reference to the underlying
--- semaphore resource.
+-- __RESOLVED__: Yes. A successful get call transfers ownership of the
+-- handle to the application. Destroying the semaphore object will not
+-- destroy the handle or the handle’s reference to the underlying semaphore
+-- resource. Unlike file descriptor opaque handles, win32 opaque handle
+-- ownership can not be transferred back to a driver by an import
+-- operation.
 --
 -- 2) Should the language regarding KMT\/Windows 7 handles be moved to a
 -- separate extension so that it can be deprecated over time?
@@ -135,9 +136,7 @@
 --
 -- == See Also
 --
--- 'D3D12FenceSubmitInfoKHR', 'ExportSemaphoreWin32HandleInfoKHR',
--- 'ImportSemaphoreWin32HandleInfoKHR', 'SemaphoreGetWin32HandleInfoKHR',
--- 'getSemaphoreWin32HandleKHR', 'importSemaphoreWin32HandleKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_format_feature_flags2 - device extension
 --
--- == VK_KHR_format_feature_flags2
+-- = VK_KHR_format_feature_flags2
 --
 -- [__Name String__]
 --     @VK_KHR_format_feature_flags2@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -68,8 +70,8 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2'
 -- is already defined to extend the Vulkan 1.0
 -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'
--- entry point, this extension defines a new 'FormatProperties3KHR' to
--- extend the 'Vulkan.Core10.DeviceInitialization.FormatProperties'.
+-- command, this extension defines a new 'FormatProperties3KHR' to extend
+-- the 'Vulkan.Core10.DeviceInitialization.FormatProperties'.
 --
 -- On top of replicating all the bits from
 -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits',
@@ -78,12 +80,12 @@
 -- -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'
 --     and
 --     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'
---     indicate that an implementation supports respectively reading and
---     writing a given 'Vulkan.Core10.Enums.Format.Format' through storage
---     operations without specifying the format in the shader.
+--     specify that an implementation supports reading and writing,
+--     respectively, a given 'Vulkan.Core10.Enums.Format.Format' through
+--     storage operations without specifying the format in the shader.
 --
 -- -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'
---     indicates that an implementation supports depth comparison performed
+--     specifies that an implementation supports depth comparison performed
 --     by @OpImage*Dref*@ instructions on a given
 --     'Vulkan.Core10.Enums.Format.Format'. Previously the result of
 --     executing a @OpImage*Dref*@ instruction on an image view, where the
@@ -129,9 +131,11 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- KHR suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- KHR suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Version History
 --
@@ -147,8 +151,7 @@
 --
 -- == See Also
 --
--- 'FormatFeatureFlagBits2KHR', 'FormatFeatureFlags2KHR',
--- 'FormatProperties3KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_fragment_shader_barycentric - device extension
 --
--- == VK_KHR_fragment_shader_barycentric
+-- = VK_KHR_fragment_shader_barycentric
 --
 -- [__Name String__]
 --     @VK_KHR_fragment_shader_barycentric@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -45,7 +47,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_fragment_shader_barycentric.txt GL_EXT_fragment_shader_barycentric>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_fragment_shader_barycentric.txt GL_EXT_fragment_shader_barycentric>
 --
 -- [__Contributors__]
 --
@@ -148,9 +150,9 @@
 -- __RESOLVED__: The inputs decorated with @BaryCoordKHR@ or
 -- @BaryCoordNoPerspKHR@ /may/ also be decorated with the @Centroid@ or
 -- @Sample@ qualifiers to specify interpolation, like any other fragment
--- shader input. If
+-- shader input. If the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderSampleRateInterpolationFunctions shaderSampleRateInterpolationFunctions>
--- is enabled, the extended instructions InterpolateAtCentroid,
+-- feature is enabled, the extended instructions InterpolateAtCentroid,
 -- InterpolateAtOffset, and InterpolateAtSample from the GLSL.std.450 /may/
 -- also be used with inputs decorated with @BaryCoordKHR@ or
 -- @BaryCoordNoPerspKHR@.
@@ -163,8 +165,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceFragmentShaderBarycentricFeaturesKHR',
--- 'PhysicalDeviceFragmentShaderBarycentricPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_fragment_shader_barycentric - device extension
 --
--- == VK_KHR_fragment_shader_barycentric
+-- = VK_KHR_fragment_shader_barycentric
 --
 -- [__Name String__]
 --     @VK_KHR_fragment_shader_barycentric@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -45,7 +47,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_fragment_shader_barycentric.txt GL_EXT_fragment_shader_barycentric>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_fragment_shader_barycentric.txt GL_EXT_fragment_shader_barycentric>
 --
 -- [__Contributors__]
 --
@@ -148,9 +150,9 @@
 -- __RESOLVED__: The inputs decorated with @BaryCoordKHR@ or
 -- @BaryCoordNoPerspKHR@ /may/ also be decorated with the @Centroid@ or
 -- @Sample@ qualifiers to specify interpolation, like any other fragment
--- shader input. If
+-- shader input. If the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderSampleRateInterpolationFunctions shaderSampleRateInterpolationFunctions>
--- is enabled, the extended instructions InterpolateAtCentroid,
+-- feature is enabled, the extended instructions InterpolateAtCentroid,
 -- InterpolateAtOffset, and InterpolateAtSample from the GLSL.std.450 /may/
 -- also be used with inputs decorated with @BaryCoordKHR@ or
 -- @BaryCoordNoPerspKHR@.
@@ -163,8 +165,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceFragmentShaderBarycentricFeaturesKHR',
--- 'PhysicalDeviceFragmentShaderBarycentricPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_fragment_shading_rate - device extension
 --
--- == VK_KHR_fragment_shading_rate
+-- = VK_KHR_fragment_shading_rate
 --
 -- [__Name String__]
 --     @VK_KHR_fragment_shading_rate@
@@ -21,20 +21,23 @@
 --     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>
---          or
---         
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Version 1.2>
---     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>
---          or
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
 --         
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_KHR_dynamic_rendering
+--
 --     -   Interacts with VK_KHR_format_feature_flags2
 --
 -- [__SPIR-V Dependencies__]
@@ -57,7 +60,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_fragment_shading_rate.txt GL_EXT_fragment_shading_rate>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_fragment_shading_rate.txt GL_EXT_fragment_shading_rate>
 --
 -- [__Contributors__]
 --
@@ -147,6 +150,17 @@
 --
 --     -   'FragmentShadingRateAttachmentInfoKHR'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':
+--
+--     -   'RenderingFragmentShadingRateAttachmentInfoKHR'
+--
 -- == New Enums
 --
 -- -   'FragmentShadingRateCombinerOpKHR'
@@ -198,6 +212,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending
@@ -205,6 +221,23 @@
 --
 --     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+--     -   'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'
+--
 -- == Version History
 --
 -- -   Revision 1, 2020-05-06 (Tobias Hector)
@@ -217,14 +250,7 @@
 --
 -- == See Also
 --
--- 'FragmentShadingRateAttachmentInfoKHR',
--- 'FragmentShadingRateCombinerOpKHR',
--- 'PhysicalDeviceFragmentShadingRateFeaturesKHR',
--- 'PhysicalDeviceFragmentShadingRateKHR',
--- 'PhysicalDeviceFragmentShadingRatePropertiesKHR',
--- 'PipelineFragmentShadingRateStateCreateInfoKHR',
--- 'cmdSetFragmentShadingRateKHR',
--- 'getPhysicalDeviceFragmentShadingRatesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -235,11 +261,13 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_KHR_fragment_shading_rate  ( cmdSetFragmentShadingRateKHR
                                                        , getPhysicalDeviceFragmentShadingRatesKHR
+                                                       , pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
                                                        , FragmentShadingRateAttachmentInfoKHR(..)
                                                        , PipelineFragmentShadingRateStateCreateInfoKHR(..)
                                                        , PhysicalDeviceFragmentShadingRateFeaturesKHR(..)
                                                        , PhysicalDeviceFragmentShadingRatePropertiesKHR(..)
                                                        , PhysicalDeviceFragmentShadingRateKHR(..)
+                                                       , RenderingFragmentShadingRateAttachmentInfoKHR(..)
                                                        , FragmentShadingRateCombinerOpKHR( FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
                                                                                          , FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
                                                                                          , FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR
@@ -315,6 +343,8 @@
 import Vulkan.Core10.Handles (CommandBuffer_T)
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetFragmentShadingRateKHR))
 import Vulkan.Core10.FundamentalTypes (Extent2D)
+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
+import Vulkan.Core10.Handles (ImageView)
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceFragmentShadingRatesKHR))
 import Vulkan.Core10.Handles (PhysicalDevice)
 import Vulkan.Core10.Handles (PhysicalDevice(..))
@@ -327,11 +357,14 @@
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
@@ -359,22 +392,22 @@
 -- == Valid Usage
 --
 -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507#
---     If
+--     If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
---     is not enabled, @pFragmentSize->width@ /must/ be @1@
+--     feature is not enabled, @pFragmentSize->width@ /must/ be @1@
 --
 -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04508#
---     If
+--     If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
---     is not enabled, @pFragmentSize->height@ /must/ be @1@
+--     feature is not enabled, @pFragmentSize->height@ /must/ be @1@
 --
 -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04509#
---     One of
+--     One of the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>,
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>,
 --     or
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     /must/ be enabled
+--     features /must/ be enabled
 --
 -- -   #VUID-vkCmdSetFragmentShadingRateKHR-primitiveFragmentShadingRate-04510#
 --     If the
@@ -517,9 +550,9 @@
 -- If @pFragmentShadingRates@ is @NULL@, then the number of fragment
 -- shading rates available is returned in @pFragmentShadingRateCount@.
 -- Otherwise, @pFragmentShadingRateCount@ /must/ point to a variable set by
--- the user to the number of elements in the @pFragmentShadingRates@ array,
--- and on return the variable is overwritten with the number of structures
--- actually written to @pFragmentShadingRates@. If
+-- the application to the number of elements in the @pFragmentShadingRates@
+-- array, and on return the variable is overwritten with the number of
+-- structures actually written to @pFragmentShadingRates@. If
 -- @pFragmentShadingRateCount@ is less than the number of fragment shading
 -- rates available, at most @pFragmentShadingRateCount@ structures will be
 -- written, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned
@@ -581,8 +614,6 @@
 -- the required rates /must/ also include
 -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_2_BIT'.
 --
--- Note
---
 -- Including the {1,1} fragment size is done for completeness; it has no
 -- actual effect on the support of rendering without setting the fragment
 -- size. All sample counts and render pass transforms are supported for
@@ -596,8 +627,6 @@
 -- into the current (unrotated) coordinate system to get the supported
 -- rates for that transform.
 --
--- Note
---
 -- For example, consider an implementation returning support for 4x2, but
 -- not 2x4 in the set of supported fragment shading rates. This means that
 -- for transforms
@@ -670,6 +699,10 @@
   pure $ ((r'), pFragmentShadingRates')
 
 
+-- No documentation found for TopLevel "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"
+pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
+
+
 -- | VkFragmentShadingRateAttachmentInfoKHR - Structure specifying a fragment
 -- shading rate attachment for a subpass
 --
@@ -1008,8 +1041,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Multiplication of the combiner rates using the fragment width\/height in
 -- linear space is equivalent to an addition of those values in log2 space.
 -- Some implementations inadvertently implemented an addition in linear
@@ -1393,6 +1424,161 @@
 
 instance Zero PhysicalDeviceFragmentShadingRateKHR where
   zero = PhysicalDeviceFragmentShadingRateKHR
+           zero
+           zero
+
+
+-- | VkRenderingFragmentShadingRateAttachmentInfoKHR - Structure specifying
+-- fragment shading rate attachment information
+--
+-- = Description
+--
+-- This structure can be included in the @pNext@ chain of
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo' to
+-- define a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.
+-- If @imageView@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', or if this
+-- structure is not specified, the implementation behaves as if a valid
+-- shading rate attachment was specified with all texels specifying a
+-- single pixel per fragment.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06147#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @layout@ /must/ be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'
+--
+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06148#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it
+--     /must/ have been created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06149#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @shadingRateAttachmentTexelSize.width@ /must/ be a power of two
+--     value
+--
+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06150#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal
+--     to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.width>
+--
+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06151#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @shadingRateAttachmentTexelSize.width@ /must/ be greater than or
+--     equal to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width>
+--
+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @shadingRateAttachmentTexelSize.height@ /must/ be a power of two
+--     value
+--
+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06153#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal
+--     to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.height>
+--
+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06154#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @shadingRateAttachmentTexelSize.height@ /must/ be greater than or
+--     equal to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.height>
+--
+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06155#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the
+--     quotient of @shadingRateAttachmentTexelSize.width@ and
+--     @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal
+--     to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>
+--
+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06156#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the
+--     quotient of @shadingRateAttachmentTexelSize.height@ and
+--     @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal
+--     to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sType#
+--     @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'
+--
+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-parameter#
+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'
+--     handle
+--
+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageLayout-parameter#
+--     @imageLayout@ /must/ be a valid
+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',
+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',
+-- 'Vulkan.Core10.Handles.ImageView',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data RenderingFragmentShadingRateAttachmentInfoKHR = RenderingFragmentShadingRateAttachmentInfoKHR
+  { -- | @imageView@ is the image view that will be used as a fragment shading
+    -- rate attachment.
+    imageView :: ImageView
+  , -- | @imageLayout@ is the layout that @imageView@ will be in during
+    -- rendering.
+    imageLayout :: ImageLayout
+  , -- | @shadingRateAttachmentTexelSize@ specifies the number of pixels
+    -- corresponding to each texel in @imageView@.
+    shadingRateAttachmentTexelSize :: Extent2D
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (RenderingFragmentShadingRateAttachmentInfoKHR)
+#endif
+deriving instance Show RenderingFragmentShadingRateAttachmentInfoKHR
+
+instance ToCStruct RenderingFragmentShadingRateAttachmentInfoKHR where
+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p RenderingFragmentShadingRateAttachmentInfoKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)
+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)
+    poke ((p `plusPtr` 28 :: Ptr Extent2D)) (shadingRateAttachmentTexelSize)
+    f
+  cStructSize = 40
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)
+    poke ((p `plusPtr` 28 :: Ptr Extent2D)) (zero)
+    f
+
+instance FromCStruct RenderingFragmentShadingRateAttachmentInfoKHR where
+  peekCStruct p = do
+    imageView <- peek @ImageView ((p `plusPtr` 16 :: Ptr ImageView))
+    imageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))
+    shadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 28 :: Ptr Extent2D))
+    pure $ RenderingFragmentShadingRateAttachmentInfoKHR
+             imageView imageLayout shadingRateAttachmentTexelSize
+
+instance Storable RenderingFragmentShadingRateAttachmentInfoKHR where
+  sizeOf ~_ = 40
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero RenderingFragmentShadingRateAttachmentInfoKHR where
+  zero = RenderingFragmentShadingRateAttachmentInfoKHR
+           zero
            zero
            zero
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_fragment_shading_rate - device extension
 --
--- == VK_KHR_fragment_shading_rate
+-- = VK_KHR_fragment_shading_rate
 --
 -- [__Name String__]
 --     @VK_KHR_fragment_shading_rate@
@@ -21,20 +21,23 @@
 --     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>
---          or
---         
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Version 1.2>
---     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>
---          or
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
 --         
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_KHR_dynamic_rendering
+--
 --     -   Interacts with VK_KHR_format_feature_flags2
 --
 -- [__SPIR-V Dependencies__]
@@ -57,7 +60,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_fragment_shading_rate.txt GL_EXT_fragment_shading_rate>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_fragment_shading_rate.txt GL_EXT_fragment_shading_rate>
 --
 -- [__Contributors__]
 --
@@ -147,6 +150,17 @@
 --
 --     -   'FragmentShadingRateAttachmentInfoKHR'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':
+--
+--     -   'RenderingFragmentShadingRateAttachmentInfoKHR'
+--
 -- == New Enums
 --
 -- -   'FragmentShadingRateCombinerOpKHR'
@@ -198,6 +212,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending
@@ -205,6 +221,23 @@
 --
 --     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+--     -   'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'
+--
 -- == Version History
 --
 -- -   Revision 1, 2020-05-06 (Tobias Hector)
@@ -217,14 +250,7 @@
 --
 -- == See Also
 --
--- 'FragmentShadingRateAttachmentInfoKHR',
--- 'FragmentShadingRateCombinerOpKHR',
--- 'PhysicalDeviceFragmentShadingRateFeaturesKHR',
--- 'PhysicalDeviceFragmentShadingRateKHR',
--- 'PhysicalDeviceFragmentShadingRatePropertiesKHR',
--- 'PipelineFragmentShadingRateStateCreateInfoKHR',
--- 'cmdSetFragmentShadingRateKHR',
--- 'getPhysicalDeviceFragmentShadingRatesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -238,6 +264,7 @@
                                                        , PhysicalDeviceFragmentShadingRateKHR
                                                        , PhysicalDeviceFragmentShadingRatePropertiesKHR
                                                        , PipelineFragmentShadingRateStateCreateInfoKHR
+                                                       , RenderingFragmentShadingRateAttachmentInfoKHR
                                                        , FragmentShadingRateCombinerOpKHR
                                                        ) where
 
@@ -283,6 +310,14 @@
 instance Show PipelineFragmentShadingRateStateCreateInfoKHR
 
 instance FromCStruct PipelineFragmentShadingRateStateCreateInfoKHR
+
+
+data RenderingFragmentShadingRateAttachmentInfoKHR
+
+instance ToCStruct RenderingFragmentShadingRateAttachmentInfoKHR
+instance Show RenderingFragmentShadingRateAttachmentInfoKHR
+
+instance FromCStruct RenderingFragmentShadingRateAttachmentInfoKHR
 
 
 data FragmentShadingRateCombinerOpKHR
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_get_display_properties2 - instance extension
 --
--- == VK_KHR_get_display_properties2
+-- = VK_KHR_get_display_properties2
 --
 -- [__Name String__]
 --     @VK_KHR_get_display_properties2@
@@ -133,12 +133,7 @@
 --
 -- == See Also
 --
--- 'DisplayModeProperties2KHR', 'DisplayPlaneCapabilities2KHR',
--- 'DisplayPlaneInfo2KHR', 'DisplayPlaneProperties2KHR',
--- 'DisplayProperties2KHR', 'getDisplayModeProperties2KHR',
--- 'getDisplayPlaneCapabilities2KHR',
--- 'getPhysicalDeviceDisplayPlaneProperties2KHR',
--- 'getPhysicalDeviceDisplayProperties2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -177,11 +172,13 @@
 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 GHC.Base (when)
 import GHC.IO (throwIO)
+import GHC.Ptr (castPtr)
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
@@ -195,6 +192,7 @@
 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))
@@ -210,24 +208,35 @@
 import Control.Monad.Trans.Cont (ContT(..))
 import Data.Vector (Vector)
 import Vulkan.CStruct.Utils (advancePtrBytes)
+import Vulkan.CStruct.Extends (forgetExtensions)
 import Vulkan.NamedType ((:::))
+import Vulkan.CStruct.Extends (Chain)
 import Vulkan.Extensions.Handles (DisplayKHR)
 import Vulkan.Extensions.Handles (DisplayKHR(..))
 import Vulkan.Extensions.Handles (DisplayModeKHR)
 import Vulkan.Extensions.VK_KHR_display (DisplayModePropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_display_stereo (DisplayModeStereoPropertiesNV)
 import Vulkan.Extensions.VK_KHR_display (DisplayPlaneCapabilitiesKHR)
 import Vulkan.Extensions.VK_KHR_display (DisplayPlanePropertiesKHR)
 import Vulkan.Extensions.VK_KHR_display (DisplayPropertiesKHR)
+import Vulkan.CStruct.Extends (Extends)
+import Vulkan.CStruct.Extends (Extendss)
+import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Dynamic (InstanceCmds(pVkGetDisplayModeProperties2KHR))
 import Vulkan.Dynamic (InstanceCmds(pVkGetDisplayPlaneCapabilities2KHR))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceDisplayPlaneProperties2KHR))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceDisplayProperties2KHR))
+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.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_DISPLAY_MODE_PROPERTIES_2_KHR))
@@ -411,7 +420,7 @@
   unsafe
 #endif
   "dynamic" mkVkGetDisplayModeProperties2KHR
-  :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> Ptr Word32 -> Ptr DisplayModeProperties2KHR -> IO Result) -> Ptr PhysicalDevice_T -> DisplayKHR -> Ptr Word32 -> Ptr DisplayModeProperties2KHR -> IO Result
+  :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> Ptr Word32 -> Ptr (SomeStruct DisplayModeProperties2KHR) -> IO Result) -> Ptr PhysicalDevice_T -> DisplayKHR -> Ptr Word32 -> Ptr (SomeStruct DisplayModeProperties2KHR) -> IO Result
 
 -- | vkGetDisplayModeProperties2KHR - Query information about the available
 -- display modes.
@@ -462,13 +471,16 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2 VK_KHR_get_display_properties2>,
 -- 'Vulkan.Extensions.Handles.DisplayKHR', 'DisplayModeProperties2KHR',
 -- 'Vulkan.Core10.Handles.PhysicalDevice'
-getDisplayModeProperties2KHR :: forall io
-                              . (MonadIO io)
+getDisplayModeProperties2KHR :: forall a io
+                              . ( Extendss DisplayModeProperties2KHR a
+                                , PokeChain a
+                                , PeekChain a
+                                , MonadIO io )
                              => -- | @physicalDevice@ is the physical device associated with @display@.
                                 PhysicalDevice
                              -> -- | @display@ is the display to query.
                                 DisplayKHR
-                             -> io (Result, ("properties" ::: Vector DisplayModeProperties2KHR))
+                             -> io (Result, ("properties" ::: Vector (DisplayModeProperties2KHR a)))
 getDisplayModeProperties2KHR physicalDevice display = liftIO . evalContT $ do
   let vkGetDisplayModeProperties2KHRPtr = pVkGetDisplayModeProperties2KHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
   lift $ unless (vkGetDisplayModeProperties2KHRPtr /= nullFunPtr) $
@@ -480,19 +492,19 @@
                                                                    physicalDevice'
                                                                    (display)
                                                                    (pPPropertyCount)
-                                                                   (nullPtr))
+                                                                   (forgetExtensions (nullPtr)))
   lift $ when (r < SUCCESS) (throwIO (VulkanException r))
   pPropertyCount <- lift $ peek @Word32 pPPropertyCount
-  pPProperties <- ContT $ bracket (callocBytes @DisplayModeProperties2KHR ((fromIntegral (pPropertyCount)) * 40)) free
-  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 40) :: Ptr DisplayModeProperties2KHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]
+  pPProperties <- ContT $ bracket (callocBytes @(DisplayModeProperties2KHR _) ((fromIntegral (pPropertyCount)) * 40)) free
+  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 40) :: Ptr (DisplayModeProperties2KHR _)) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]
   r' <- lift $ traceAroundEvent "vkGetDisplayModeProperties2KHR" (vkGetDisplayModeProperties2KHR'
                                                                     physicalDevice'
                                                                     (display)
                                                                     (pPPropertyCount)
-                                                                    ((pPProperties)))
+                                                                    (forgetExtensions ((pPProperties))))
   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount
-  pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @DisplayModeProperties2KHR (((pPProperties) `advancePtrBytes` (40 * (i)) :: Ptr DisplayModeProperties2KHR)))
+  pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @(DisplayModeProperties2KHR _) (((pPProperties) `advancePtrBytes` (40 * (i)) :: Ptr (DisplayModeProperties2KHR _))))
   pure $ ((r'), pProperties')
 
 
@@ -669,51 +681,74 @@
 --
 -- == Valid Usage (Implicit)
 --
+-- -   #VUID-VkDisplayModeProperties2KHR-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR'
+--
+-- -   #VUID-VkDisplayModeProperties2KHR-pNext-pNext# @pNext@ /must/ be
+--     @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_NV_display_stereo.DisplayModeStereoPropertiesNV'
+--
+-- -   #VUID-VkDisplayModeProperties2KHR-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_KHR_get_display_properties2 VK_KHR_get_display_properties2>,
 -- 'Vulkan.Extensions.VK_KHR_display.DisplayModePropertiesKHR',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType',
 -- 'getDisplayModeProperties2KHR'
-data DisplayModeProperties2KHR = DisplayModeProperties2KHR
-  { -- | @displayModeProperties@ is a
+data DisplayModeProperties2KHR (es :: [Type]) = DisplayModeProperties2KHR
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @displayModeProperties@ is a
     -- 'Vulkan.Extensions.VK_KHR_display.DisplayModePropertiesKHR' structure.
-    displayModeProperties :: DisplayModePropertiesKHR }
+    displayModeProperties :: DisplayModePropertiesKHR
+  }
   deriving (Typeable)
 #if defined(GENERIC_INSTANCES)
-deriving instance Generic (DisplayModeProperties2KHR)
+deriving instance Generic (DisplayModeProperties2KHR (es :: [Type]))
 #endif
-deriving instance Show DisplayModeProperties2KHR
+deriving instance Show (Chain es) => Show (DisplayModeProperties2KHR es)
 
-instance ToCStruct DisplayModeProperties2KHR where
+instance Extensible DisplayModeProperties2KHR where
+  extensibleTypeName = "DisplayModeProperties2KHR"
+  setNext DisplayModeProperties2KHR{..} next' = DisplayModeProperties2KHR{next = next', ..}
+  getNext DisplayModeProperties2KHR{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends DisplayModeProperties2KHR e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @DisplayModeStereoPropertiesNV = Just f
+    | otherwise = Nothing
+
+instance ( Extendss DisplayModeProperties2KHR es
+         , PokeChain es ) => ToCStruct (DisplayModeProperties2KHR es) where
   withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p DisplayModeProperties2KHR{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr DisplayModePropertiesKHR)) (displayModeProperties)
-    f
+  pokeCStruct p DisplayModeProperties2KHR{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr DisplayModePropertiesKHR)) (displayModeProperties)
+    lift $ f
   cStructSize = 40
   cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr DisplayModePropertiesKHR)) (zero)
-    f
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 16 :: Ptr DisplayModePropertiesKHR)) (zero)
+    lift $ f
 
-instance FromCStruct DisplayModeProperties2KHR where
+instance ( Extendss DisplayModeProperties2KHR es
+         , PeekChain es ) => FromCStruct (DisplayModeProperties2KHR es) where
   peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
     displayModeProperties <- peekCStruct @DisplayModePropertiesKHR ((p `plusPtr` 16 :: Ptr DisplayModePropertiesKHR))
     pure $ DisplayModeProperties2KHR
-             displayModeProperties
-
-instance Storable DisplayModeProperties2KHR where
-  sizeOf ~_ = 40
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
+             next displayModeProperties
 
-instance Zero DisplayModeProperties2KHR where
+instance es ~ '[] => Zero (DisplayModeProperties2KHR es) where
   zero = DisplayModeProperties2KHR
+           ()
            zero
 
 
@@ -721,8 +756,6 @@
 -- of a display plane
 --
 -- = Description
---
--- Note
 --
 -- This parameter also implicitly specifies a display.
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_get_display_properties2 - instance extension
 --
--- == VK_KHR_get_display_properties2
+-- = VK_KHR_get_display_properties2
 --
 -- [__Name String__]
 --     @VK_KHR_get_display_properties2@
@@ -133,12 +133,7 @@
 --
 -- == See Also
 --
--- 'DisplayModeProperties2KHR', 'DisplayPlaneCapabilities2KHR',
--- 'DisplayPlaneInfo2KHR', 'DisplayPlaneProperties2KHR',
--- 'DisplayProperties2KHR', 'getDisplayModeProperties2KHR',
--- 'getDisplayPlaneCapabilities2KHR',
--- 'getPhysicalDeviceDisplayPlaneProperties2KHR',
--- 'getPhysicalDeviceDisplayProperties2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -157,13 +152,19 @@
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
-
-data DisplayModeProperties2KHR
+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 DisplayModeProperties2KHR nominal
+data DisplayModeProperties2KHR (es :: [Type])
 
-instance ToCStruct DisplayModeProperties2KHR
-instance Show DisplayModeProperties2KHR
+instance ( Extendss DisplayModeProperties2KHR es
+         , PokeChain es ) => ToCStruct (DisplayModeProperties2KHR es)
+instance Show (Chain es) => Show (DisplayModeProperties2KHR es)
 
-instance FromCStruct DisplayModeProperties2KHR
+instance ( Extendss DisplayModeProperties2KHR es
+         , PeekChain es ) => FromCStruct (DisplayModeProperties2KHR es)
 
 
 data DisplayPlaneCapabilities2KHR
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_get_memory_requirements2 - device extension
 --
--- == VK_KHR_get_memory_requirements2
+-- = VK_KHR_get_memory_requirements2
 --
 -- [__Name String__]
 --     @VK_KHR_get_memory_requirements2@
@@ -53,7 +53,7 @@
 --
 -- 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
+-- introducing any additional commands. The Vulkan 1.0
 -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements' and
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements'
 -- structures do not include @sType@ and @pNext@ members. This extension
@@ -65,7 +65,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -114,10 +114,7 @@
 --
 -- == See Also
 --
--- 'BufferMemoryRequirementsInfo2KHR', 'ImageMemoryRequirementsInfo2KHR',
--- 'ImageSparseMemoryRequirementsInfo2KHR', 'MemoryRequirements2KHR',
--- 'SparseImageMemoryRequirements2KHR', 'getBufferMemoryRequirements2KHR',
--- 'getImageMemoryRequirements2KHR', 'getImageSparseMemoryRequirements2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_get_memory_requirements2 - device extension
 --
--- == VK_KHR_get_memory_requirements2
+-- = VK_KHR_get_memory_requirements2
 --
 -- [__Name String__]
 --     @VK_KHR_get_memory_requirements2@
@@ -53,7 +53,7 @@
 --
 -- 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
+-- introducing any additional commands. The Vulkan 1.0
 -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements' and
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements'
 -- structures do not include @sType@ and @pNext@ members. This extension
@@ -65,7 +65,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -114,10 +114,7 @@
 --
 -- == See Also
 --
--- 'BufferMemoryRequirementsInfo2KHR', 'ImageMemoryRequirementsInfo2KHR',
--- 'ImageSparseMemoryRequirementsInfo2KHR', 'MemoryRequirements2KHR',
--- 'SparseImageMemoryRequirements2KHR', 'getBufferMemoryRequirements2KHR',
--- 'getImageMemoryRequirements2KHR', 'getImageSparseMemoryRequirements2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_get_physical_device_properties2 - instance extension
 --
--- == VK_KHR_get_physical_device_properties2
+-- = VK_KHR_get_physical_device_properties2
 --
 -- [__Name String__]
 --     @VK_KHR_get_physical_device_properties2@
@@ -68,7 +68,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -195,17 +195,7 @@
 --
 -- == See Also
 --
--- 'FormatProperties2KHR', 'ImageFormatProperties2KHR',
--- 'PhysicalDeviceFeatures2KHR', 'PhysicalDeviceImageFormatInfo2KHR',
--- 'PhysicalDeviceMemoryProperties2KHR', 'PhysicalDeviceProperties2KHR',
--- 'PhysicalDeviceSparseImageFormatInfo2KHR', 'QueueFamilyProperties2KHR',
--- 'SparseImageFormatProperties2KHR', 'getPhysicalDeviceFeatures2KHR',
--- 'getPhysicalDeviceFormatProperties2KHR',
--- 'getPhysicalDeviceImageFormatProperties2KHR',
--- 'getPhysicalDeviceMemoryProperties2KHR',
--- 'getPhysicalDeviceProperties2KHR',
--- 'getPhysicalDeviceQueueFamilyProperties2KHR',
--- 'getPhysicalDeviceSparseImageFormatProperties2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_get_surface_capabilities2 - instance extension
 --
--- == VK_KHR_get_surface_capabilities2
+-- = VK_KHR_get_surface_capabilities2
 --
 -- [__Name String__]
 --     @VK_KHR_get_surface_capabilities2@
@@ -129,9 +129,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceSurfaceInfo2KHR', 'SurfaceCapabilities2KHR',
--- 'SurfaceFormat2KHR', 'getPhysicalDeviceSurfaceCapabilities2KHR',
--- 'getPhysicalDeviceSurfaceFormats2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -395,8 +393,8 @@
 -- If @pSurfaceFormats@ is @NULL@, then the number of format tuples
 -- supported for the given @surface@ is returned in @pSurfaceFormatCount@.
 -- Otherwise, @pSurfaceFormatCount@ /must/ point to a variable set by the
--- user to the number of elements in the @pSurfaceFormats@ array, and on
--- return the variable is overwritten with the number of structures
+-- application to the number of elements in the @pSurfaceFormats@ array,
+-- and on return the variable is overwritten with the number of structures
 -- actually written to @pSurfaceFormats@. If the value of
 -- @pSurfaceFormatCount@ is less than the number of format tuples
 -- supported, at most @pSurfaceFormatCount@ structures will be written, and
@@ -541,9 +539,10 @@
 --     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT'
 --     structure /must/ be included in the @pNext@ chain
 --
--- -   #VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-07919# If the
---     @VK_GOOGLE_surfaceless_query@ extension is not enabled, @surface@
---     /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR' handle
+-- -   #VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-07919# If surface is
+--     not VK_NULL_HANDLE, and the @VK_GOOGLE_surfaceless_query@ extension
+--     is not enabled, @surface@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.SurfaceKHR' handle
 --
 -- == Valid Usage (Implicit)
 --
@@ -560,10 +559,6 @@
 --
 -- -   #VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-unique# The @sType@
 --     value of each struct in the @pNext@ chain /must/ be unique
---
--- -   #VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter# If
---     @surface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @surface@
---     /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR' handle
 --
 -- = See Also
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_get_surface_capabilities2 - instance extension
 --
--- == VK_KHR_get_surface_capabilities2
+-- = VK_KHR_get_surface_capabilities2
 --
 -- [__Name String__]
 --     @VK_KHR_get_surface_capabilities2@
@@ -129,9 +129,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceSurfaceInfo2KHR', 'SurfaceCapabilities2KHR',
--- 'SurfaceFormat2KHR', 'getPhysicalDeviceSurfaceCapabilities2KHR',
--- 'getPhysicalDeviceSurfaceFormats2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_global_priority - device extension
 --
--- == VK_KHR_global_priority
+-- = VK_KHR_global_priority
 --
 -- [__Name String__]
 --     @VK_KHR_global_priority@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -56,7 +58,7 @@
 -- enforcement rules.
 --
 -- The driver implementation will attempt to skew hardware resource
--- allocation in favour of the higher-priority task. Therefore,
+-- allocation in favor of the higher-priority task. Therefore,
 -- higher-priority work may retain similar latency and throughput
 -- characteristics even if the system is congested with lower priority
 -- work.
@@ -147,10 +149,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_KHR',
--- 'DeviceQueueGlobalPriorityCreateInfoKHR',
--- 'PhysicalDeviceGlobalPriorityQueryFeaturesKHR',
--- 'QueueFamilyGlobalPriorityPropertiesKHR', 'QueueGlobalPriorityKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -262,8 +261,7 @@
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data DeviceQueueGlobalPriorityCreateInfoKHR = DeviceQueueGlobalPriorityCreateInfoKHR
   { -- | @globalPriority@ is the system-wide priority associated to these queues
-    -- as specified by
-    -- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT'
+    -- as specified by 'QueueGlobalPriorityKHR'
     --
     -- #VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-globalPriority-parameter#
     -- @globalPriority@ /must/ be a valid 'QueueGlobalPriorityKHR' value
@@ -394,22 +392,12 @@
 -- The valid elements of @priorities@ /must/ be a continuous sequence of
 -- 'QueueGlobalPriorityKHR' enums in the ascending order.
 --
--- Note
---
 -- For example, returning @priorityCount@ as 3 with supported @priorities@
 -- as 'QUEUE_GLOBAL_PRIORITY_LOW_KHR', 'QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR'
 -- and 'QUEUE_GLOBAL_PRIORITY_REALTIME_KHR' is not allowed.
 --
 -- == Valid Usage (Implicit)
 --
--- -   #VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-sType-sType# @sType@
---     /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR'
---
--- -   #VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-priorities-parameter#
---     Each element of @priorities@ /must/ be a valid
---     'QueueGlobalPriorityKHR' value
---
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priority VK_KHR_global_priority>,
@@ -420,10 +408,10 @@
     -- this queue family, and it /must/ be greater than 0.
     priorityCount :: Word32
   , -- | @priorities@ is an array of
-    -- 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_EXT'
-    -- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT' enums
-    -- representing all supported global queue priorities in this queue family.
-    -- The first @priorityCount@ elements of the array will be valid.
+    -- 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_KHR'
+    -- 'QueueGlobalPriorityKHR' enums representing all supported global queue
+    -- priorities in this queue family. The first @priorityCount@ elements of
+    -- the array will be valid.
     priorities :: Vector QueueGlobalPriorityKHR
   }
   deriving (Typeable)
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_global_priority - device extension
 --
--- == VK_KHR_global_priority
+-- = VK_KHR_global_priority
 --
 -- [__Name String__]
 --     @VK_KHR_global_priority@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -56,7 +58,7 @@
 -- enforcement rules.
 --
 -- The driver implementation will attempt to skew hardware resource
--- allocation in favour of the higher-priority task. Therefore,
+-- allocation in favor of the higher-priority task. Therefore,
 -- higher-priority work may retain similar latency and throughput
 -- characteristics even if the system is congested with lower priority
 -- work.
@@ -147,10 +149,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_KHR',
--- 'DeviceQueueGlobalPriorityCreateInfoKHR',
--- 'PhysicalDeviceGlobalPriorityQueryFeaturesKHR',
--- 'QueueFamilyGlobalPriorityPropertiesKHR', 'QueueGlobalPriorityKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_image_format_list - device extension
 --
--- == VK_KHR_image_format_list
+-- = VK_KHR_image_format_list
 --
 -- [__Name String__]
 --     @VK_KHR_image_format_list@
@@ -72,7 +72,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -101,7 +101,7 @@
 --
 -- == See Also
 --
--- 'ImageFormatListCreateInfoKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_imageless_framebuffer - device extension
 --
--- == VK_KHR_imageless_framebuffer
+-- = VK_KHR_imageless_framebuffer
 --
 -- [__Name String__]
 --     @VK_KHR_imageless_framebuffer@
@@ -21,11 +21,19 @@
 --     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_maintenance2 VK_KHR_maintenance2>
---     and
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_image_format_list VK_KHR_image_format_list>
---     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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__Deprecation State__]
 --
@@ -63,7 +71,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -113,10 +121,7 @@
 --
 -- == See Also
 --
--- 'FramebufferAttachmentImageInfoKHR',
--- 'FramebufferAttachmentsCreateInfoKHR',
--- 'PhysicalDeviceImagelessFramebufferFeaturesKHR',
--- 'RenderPassAttachmentBeginInfoKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_incremental_present - device extension
 --
--- == VK_KHR_incremental_present
+-- = VK_KHR_incremental_present
 --
 -- [__Name String__]
 --     @VK_KHR_incremental_present@
@@ -153,7 +153,7 @@
 --
 -- == See Also
 --
--- 'PresentRegionKHR', 'PresentRegionsKHR', 'RectLayerKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_incremental_present - device extension
 --
--- == VK_KHR_incremental_present
+-- = VK_KHR_incremental_present
 --
 -- [__Name String__]
 --     @VK_KHR_incremental_present@
@@ -153,7 +153,7 @@
 --
 -- == See Also
 --
--- 'PresentRegionKHR', 'PresentRegionsKHR', 'RectLayerKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_index_type_uint8.hs b/src/Vulkan/Extensions/VK_KHR_index_type_uint8.hs
--- a/src/Vulkan/Extensions/VK_KHR_index_type_uint8.hs
+++ b/src/Vulkan/Extensions/VK_KHR_index_type_uint8.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_index_type_uint8 - device extension
 --
--- == VK_KHR_index_type_uint8
+-- = VK_KHR_index_type_uint8
 --
 -- [__Name String__]
 --     @VK_KHR_index_type_uint8@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -77,7 +77,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceIndexTypeUint8FeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_index_type_uint8.hs-boot b/src/Vulkan/Extensions/VK_KHR_index_type_uint8.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_index_type_uint8.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_index_type_uint8.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_index_type_uint8 - device extension
 --
--- == VK_KHR_index_type_uint8
+-- = VK_KHR_index_type_uint8
 --
 -- [__Name String__]
 --     @VK_KHR_index_type_uint8@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -77,7 +77,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceIndexTypeUint8FeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_line_rasterization.hs b/src/Vulkan/Extensions/VK_KHR_line_rasterization.hs
--- a/src/Vulkan/Extensions/VK_KHR_line_rasterization.hs
+++ b/src/Vulkan/Extensions/VK_KHR_line_rasterization.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_line_rasterization - device extension
 --
--- == VK_KHR_line_rasterization
+-- = VK_KHR_line_rasterization
 --
 -- [__Name String__]
 --     @VK_KHR_line_rasterization@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -117,10 +117,7 @@
 --
 -- == See Also
 --
--- 'LineRasterizationModeKHR',
--- 'PhysicalDeviceLineRasterizationFeaturesKHR',
--- 'PhysicalDeviceLineRasterizationPropertiesKHR',
--- 'PipelineRasterizationLineStateCreateInfoKHR', 'cmdSetLineStippleKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_line_rasterization.hs-boot b/src/Vulkan/Extensions/VK_KHR_line_rasterization.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_line_rasterization.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_line_rasterization.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_line_rasterization - device extension
 --
--- == VK_KHR_line_rasterization
+-- = VK_KHR_line_rasterization
 --
 -- [__Name String__]
 --     @VK_KHR_line_rasterization@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -117,10 +117,7 @@
 --
 -- == See Also
 --
--- 'LineRasterizationModeKHR',
--- 'PhysicalDeviceLineRasterizationFeaturesKHR',
--- 'PhysicalDeviceLineRasterizationPropertiesKHR',
--- 'PipelineRasterizationLineStateCreateInfoKHR', 'cmdSetLineStippleKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_load_store_op_none.hs b/src/Vulkan/Extensions/VK_KHR_load_store_op_none.hs
--- a/src/Vulkan/Extensions/VK_KHR_load_store_op_none.hs
+++ b/src/Vulkan/Extensions/VK_KHR_load_store_op_none.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_load_store_op_none - device extension
 --
--- == VK_KHR_load_store_op_none
+-- = VK_KHR_load_store_op_none
 --
 -- [__Name String__]
 --     @VK_KHR_load_store_op_none@
@@ -65,6 +65,11 @@
 -- -   Extending 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp':
 --
 --     -   'Vulkan.Extensions.VK_KHR_dynamic_rendering.ATTACHMENT_STORE_OP_NONE_KHR'
+--
+-- While 'Vulkan.Core10.Enums.AttachmentStoreOp.ATTACHMENT_STORE_OP_NONE'
+-- is part of Vulkan 1.3, this extension was not promoted to core either in
+-- whole or in part. This functionality was promoted from
+-- @VK_KHR_dynamic_rendering@.
 --
 -- == Version History
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_maintenance1 - device extension
 --
--- == VK_KHR_maintenance1
+-- = VK_KHR_maintenance1
 --
 -- [__Name String__]
 --     @VK_KHR_maintenance1@
@@ -120,7 +120,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -175,7 +175,7 @@
 --
 -- == See Also
 --
--- 'CommandPoolTrimFlagsKHR', 'trimCommandPoolKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_maintenance2 - device extension
 --
--- == VK_KHR_maintenance2
+-- = VK_KHR_maintenance2
 --
 -- [__Name String__]
 --     @VK_KHR_maintenance2@
@@ -96,7 +96,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -228,12 +228,7 @@
 --
 -- == See Also
 --
--- 'ImageViewUsageCreateInfoKHR', 'InputAttachmentAspectReferenceKHR',
--- 'PhysicalDevicePointClippingPropertiesKHR',
--- 'PipelineTessellationDomainOriginStateCreateInfoKHR',
--- 'PointClippingBehaviorKHR',
--- 'RenderPassInputAttachmentAspectCreateInfoKHR',
--- 'TessellationDomainOriginKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_maintenance3 - device extension
 --
--- == VK_KHR_maintenance3
+-- = VK_KHR_maintenance3
 --
 -- [__Name String__]
 --     @VK_KHR_maintenance3@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -62,7 +64,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -100,9 +102,7 @@
 --
 -- == See Also
 --
--- 'DescriptorSetLayoutSupportKHR',
--- 'PhysicalDeviceMaintenance3PropertiesKHR',
--- 'getDescriptorSetLayoutSupportKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_maintenance4 - device extension
 --
--- == VK_KHR_maintenance4
+-- = VK_KHR_maintenance4
 --
 -- [__Name String__]
 --     @VK_KHR_maintenance4@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -151,9 +151,11 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- KHR suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- KHR suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Issues
 --
@@ -171,12 +173,7 @@
 --
 -- == See Also
 --
--- 'DeviceBufferMemoryRequirementsKHR', 'DeviceImageMemoryRequirementsKHR',
--- 'PhysicalDeviceMaintenance4FeaturesKHR',
--- 'PhysicalDeviceMaintenance4PropertiesKHR',
--- 'getDeviceBufferMemoryRequirementsKHR',
--- 'getDeviceImageMemoryRequirementsKHR',
--- 'getDeviceImageSparseMemoryRequirementsKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance5.hs b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs
--- a/src/Vulkan/Extensions/VK_KHR_maintenance5.hs
+++ b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_maintenance5 - device extension
 --
--- == VK_KHR_maintenance5
+-- = VK_KHR_maintenance5
 --
 -- [__Name String__]
 --     @VK_KHR_maintenance5@
@@ -21,9 +21,13 @@
 --     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#versions-1.1 Vulkan 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 Vulkan Version 1.3>
 --
 -- [__API Interactions__]
 --
@@ -138,8 +142,8 @@
 -- -   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
+-- -   A new command '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
@@ -187,7 +191,7 @@
 --     algorithm used
 --
 -- -   Two new flags words 'PipelineCreateFlagBits2KHR' and
---     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR'
+--     '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
@@ -245,13 +249,13 @@
 --
 -- == New Enums
 --
--- -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR'
+-- -   'BufferUsageFlagBits2KHR'
 --
 -- -   'PipelineCreateFlagBits2KHR'
 --
 -- == New Bitmasks
 --
--- -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlags2KHR'
+-- -   'BufferUsageFlags2KHR'
 --
 -- -   'PipelineCreateFlags2KHR'
 --
@@ -286,6 +290,30 @@
 --     -   '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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- 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>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- 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_EXT_attachment_feedback_loop_layout VK_EXT_attachment_feedback_loop_layout>
 -- is supported:
 --
@@ -299,23 +327,21 @@
 -- <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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT'
+--     -   '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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'
+--     -   'BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'
+--     -   'BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'
+--     -   'BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   Extending 'PipelineCreateFlagBits2KHR':
 --
@@ -335,12 +361,11 @@
 -- <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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT'
+--     -   'BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT'
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT'
+--     -   'BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT'
 --
 -- -   Extending 'PipelineCreateFlagBits2KHR':
 --
@@ -360,43 +385,21 @@
 -- <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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT'
+--     -   'BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT'
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'
+--     -   '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 'BufferUsageFlagBits2KHR':
 --
--- -   Extending 'PipelineCreateFlagBits2KHR':
+--     -   'BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR'
 --
---     -   'PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--     -   'BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_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>
@@ -420,10 +423,9 @@
 -- <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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR'
+--     -   'BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR'
 --
 -- -   Extending 'PipelineCreateFlagBits2KHR':
 --
@@ -445,23 +447,21 @@
 -- <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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR'
+--     -   'BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR'
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR'
+--     -   '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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR'
+--     -   'BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR'
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR'
+--     -   '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>
@@ -483,8 +483,7 @@
 -- <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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
 --     -   'BUFFER_USAGE_2_RAY_TRACING_BIT_NV'
 --
@@ -501,7 +500,7 @@
 --     -   '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>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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:
@@ -513,20 +512,19 @@
 --     -   '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>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan 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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR'
+--     -   '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>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan 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:
@@ -549,12 +547,7 @@
 --
 -- == See Also
 --
--- 'DeviceImageSubresourceInfoKHR', 'ImageSubresource2KHR',
--- 'PhysicalDeviceMaintenance5FeaturesKHR',
--- 'PhysicalDeviceMaintenance5PropertiesKHR', 'RenderingAreaInfoKHR',
--- 'SubresourceLayout2KHR', 'cmdBindIndexBuffer2KHR',
--- 'getDeviceImageSubresourceLayoutKHR', 'getImageSubresourceLayout2KHR',
--- 'getRenderingAreaGranularityKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -576,10 +569,42 @@
                                               , ImageSubresource2KHR(..)
                                               , SubresourceLayout2KHR(..)
                                               , DeviceImageSubresourceInfoKHR(..)
+                                              , 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_PREPROCESS_BUFFER_BIT_EXT
+                                                                       , 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
+                                                                       , ..
+                                                                       )
                                               , 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_INDIRECT_BINDABLE_BIT_EXT
+                                                                          , PIPELINE_CREATE_2_CAPTURE_DATA_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
@@ -608,14 +633,14 @@
                                                                           , PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV
                                                                           , PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR
                                                                           , PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
+                                                                          , PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX
                                                                           , ..
                                                                           )
                                               , 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)
@@ -674,7 +699,6 @@
 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(..))
@@ -711,8 +735,6 @@
 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))
@@ -721,8 +743,6 @@
 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
@@ -747,13 +767,11 @@
 --
 -- -   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'.
+--     the @width@ of each attachment used in the render pass instance.
 --
 -- -   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'.
+--     the @height@ of each attachment used in the render pass instance.
 --
 -- == Valid Usage (Implicit)
 --
@@ -849,9 +867,9 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-indexTypeUint8 indexTypeUint8>
 --     feature /must/ be enabled
 --
--- -   #VUID-vkCmdBindIndexBuffer2KHR-None-09493# If
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-None-09493# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance6 maintenance6>
---     is not enabled, @buffer@ /must/ not be
+--     feature is not enabled, @buffer@ /must/ not be
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE'
 --
 -- -   #VUID-vkCmdBindIndexBuffer2KHR-buffer-09494# If @buffer@ is
@@ -965,14 +983,12 @@
 -- 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@
+-- It is legal to call 'getImageSubresourceLayout2KHR' with an @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'.
@@ -1170,17 +1186,14 @@
 -- = 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',
+-- '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.
+  { -- | @usage@ is a bitmask of '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
+    -- be a valid combination of 'BufferUsageFlagBits2KHR' values
     --
     -- #VUID-VkBufferUsageFlags2CreateInfoKHR-usage-requiredbitmask# @usage@
     -- /must/ not be @0@
@@ -1373,7 +1386,7 @@
     --     algorithm used.
     --
     -- -   Two new flags words 'PipelineCreateFlagBits2KHR' and
-    --     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR'.
+    --     'BufferUsageFlagBits2KHR'.
     --
     -- -   Physical-device-level functions /can/ now be called with any value
     --     in the valid range for a type beyond the defined enumerants, such
@@ -1890,6 +1903,309 @@
            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>,
+-- 'BufferUsageFlags2KHR'
+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
+-- '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'.
+-- It is also suitable for passing as the underlying buffer of either the
+-- @preprocessAddress@ or @sequenceCountAddress@ members of
+-- 'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsInfoEXT'.
+pattern BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000100
+
+-- | 'BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT' specifies that the buffer
+-- /can/ be used as a preprocess buffer for
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>.
+pattern BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000080000000
+
+-- 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_PREPROCESS_BUFFER_BIT_EXT
+    , "PREPROCESS_BUFFER_BIT_EXT"
+    )
+  ,
+    ( 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 PipelineCreateFlags2KHR = PipelineCreateFlagBits2KHR
 
 -- | VkPipelineCreateFlagBits2KHR - Bitmask controlling how a pipeline is
@@ -1996,12 +2312,16 @@
 --     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_INDIRECT_BINDABLE_BIT_EXT' specifies that the
+--     pipeline /can/ be used in a
+--     'Vulkan.Extensions.Handles.IndirectExecutionSetEXT'.
+--
 -- -   '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.Handles.Pipeline' will be
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE'.
 --
 -- -   When creating multiple pipelines,
@@ -2061,6 +2381,26 @@
 -- -   'PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT' specifies that the
 --     pipeline /must/ not be bound to an unprotected command buffer.
 --
+-- -   'PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR' specifies that
+--     'Vulkan.Extensions.Handles.PipelineBinaryKHR' objects /can/ be
+--     created from the pipeline. If
+--     'PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR' is used, implementations
+--     /should/ not store pipeline data to an internal cache, if such a
+--     cache exists as stated by
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-pipelineBinaryInternalCache pipelineBinaryInternalCache>.
+--     If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-pipelineBinaryPrefersInternalCache pipelineBinaryPrefersInternalCache>
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', applications /should/ not
+--     use 'PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'.
+--
+-- -   'PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT' specifies that
+--     the pipeline will be used in a render pass that is begun with
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'.
+--
+-- -   'PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX' specifies that the
+--     pipeline will be used in an
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#executiongraphs execution graph>
+--
 -- 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
@@ -2074,8 +2414,6 @@
 -- 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
@@ -2090,7 +2428,8 @@
 --
 -- = See Also
 --
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>,
+-- 'PipelineCreateFlags2KHR'
 newtype PipelineCreateFlagBits2KHR = PipelineCreateFlagBits2KHR Flags64
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
@@ -2103,6 +2442,12 @@
 -- 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_INDIRECT_BINDABLE_BIT_EXT"
+pattern PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000004000000000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR"
+pattern PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000080000000
+
 -- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT"
 pattern PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000020000000
 
@@ -2187,6 +2532,12 @@
 -- 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
 
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT"
+pattern PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000400000000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX"
+pattern PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX = PipelineCreateFlagBits2KHR 0x0000000100000000
+
 conNamePipelineCreateFlagBits2KHR :: String
 conNamePipelineCreateFlagBits2KHR = "PipelineCreateFlagBits2KHR"
 
@@ -2208,6 +2559,14 @@
     , "DERIVATIVE_BIT_KHR"
     )
   ,
+    ( PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT
+    , "INDIRECT_BINDABLE_BIT_EXT"
+    )
+  ,
+    ( PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR
+    , "CAPTURE_DATA_BIT_KHR"
+    )
+  ,
     ( PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT
     , "DESCRIPTOR_BUFFER_BIT_EXT"
     )
@@ -2318,6 +2677,14 @@
   ,
     ( PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
     , "VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
+    , "ENABLE_LEGACY_DITHERING_BIT_EXT"
+    )
+  ,
+    ( PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX
+    , "EXECUTION_GRAPH_BIT_AMDX"
     )
   ]
 
diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance5.hs-boot b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_maintenance5.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_maintenance5 - device extension
 --
--- == VK_KHR_maintenance5
+-- = VK_KHR_maintenance5
 --
 -- [__Name String__]
 --     @VK_KHR_maintenance5@
@@ -21,9 +21,13 @@
 --     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#versions-1.1 Vulkan 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 Vulkan Version 1.3>
 --
 -- [__API Interactions__]
 --
@@ -138,8 +142,8 @@
 -- -   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
+-- -   A new command '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
@@ -187,7 +191,7 @@
 --     algorithm used
 --
 -- -   Two new flags words 'PipelineCreateFlagBits2KHR' and
---     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR'
+--     '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
@@ -245,13 +249,13 @@
 --
 -- == New Enums
 --
--- -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR'
+-- -   'BufferUsageFlagBits2KHR'
 --
 -- -   'PipelineCreateFlagBits2KHR'
 --
 -- == New Bitmasks
 --
--- -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlags2KHR'
+-- -   'BufferUsageFlags2KHR'
 --
 -- -   'PipelineCreateFlags2KHR'
 --
@@ -286,6 +290,30 @@
 --     -   '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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- 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>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- 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_EXT_attachment_feedback_loop_layout VK_EXT_attachment_feedback_loop_layout>
 -- is supported:
 --
@@ -299,23 +327,21 @@
 -- <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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT'
+--     -   '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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'
+--     -   'BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'
+--     -   'BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'
+--     -   'BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   Extending 'PipelineCreateFlagBits2KHR':
 --
@@ -335,12 +361,11 @@
 -- <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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT'
+--     -   'BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT'
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT'
+--     -   'BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT'
 --
 -- -   Extending 'PipelineCreateFlagBits2KHR':
 --
@@ -360,43 +385,21 @@
 -- <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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT'
+--     -   'BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT'
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'
+--     -   '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 'BufferUsageFlagBits2KHR':
 --
--- -   Extending 'PipelineCreateFlagBits2KHR':
+--     -   'BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR'
 --
---     -   'PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--     -   'BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_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>
@@ -420,10 +423,9 @@
 -- <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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR'
+--     -   'BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR'
 --
 -- -   Extending 'PipelineCreateFlagBits2KHR':
 --
@@ -445,23 +447,21 @@
 -- <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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR'
+--     -   'BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR'
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR'
+--     -   '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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR'
+--     -   'BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR'
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR'
+--     -   '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>
@@ -483,8 +483,7 @@
 -- <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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
 --     -   'BUFFER_USAGE_2_RAY_TRACING_BIT_NV'
 --
@@ -501,7 +500,7 @@
 --     -   '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>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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:
@@ -513,20 +512,19 @@
 --     -   '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>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan 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':
+-- -   Extending 'BufferUsageFlagBits2KHR':
 --
---     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR'
+--     -   '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>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan 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:
@@ -549,12 +547,7 @@
 --
 -- == See Also
 --
--- 'DeviceImageSubresourceInfoKHR', 'ImageSubresource2KHR',
--- 'PhysicalDeviceMaintenance5FeaturesKHR',
--- 'PhysicalDeviceMaintenance5PropertiesKHR', 'RenderingAreaInfoKHR',
--- 'SubresourceLayout2KHR', 'cmdBindIndexBuffer2KHR',
--- 'getDeviceImageSubresourceLayoutKHR', 'getImageSubresourceLayout2KHR',
--- 'getRenderingAreaGranularityKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance6.hs b/src/Vulkan/Extensions/VK_KHR_maintenance6.hs
--- a/src/Vulkan/Extensions/VK_KHR_maintenance6.hs
+++ b/src/Vulkan/Extensions/VK_KHR_maintenance6.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_maintenance6 - device extension
 --
--- == VK_KHR_maintenance6
+-- = VK_KHR_maintenance6
 --
 -- [__Name String__]
 --     @VK_KHR_maintenance6@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
@@ -213,10 +213,7 @@
 --
 -- == See Also
 --
--- 'BindDescriptorSetsInfoKHR', 'BindMemoryStatusKHR',
--- 'PhysicalDeviceMaintenance6FeaturesKHR',
--- 'PhysicalDeviceMaintenance6PropertiesKHR', 'PushConstantsInfoKHR',
--- 'cmdBindDescriptorSets2KHR', 'cmdPushConstants2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -1147,10 +1144,10 @@
 --     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT'
 --     flag set
 --
--- -   #VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-06563# If
+-- -   #VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-06563# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>
---     is not enabled, each element of @pDescriptorSets@ /must/ be a valid
---     'Vulkan.Core10.Handles.DescriptorSet'
+--     feature is not enabled, each element of @pDescriptorSets@ /must/ be
+--     a valid 'Vulkan.Core10.Handles.DescriptorSet'
 --
 -- -   #VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-08010# Each
 --     element of @pDescriptorSets@ /must/ have been allocated with a
diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance6.hs-boot b/src/Vulkan/Extensions/VK_KHR_maintenance6.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_maintenance6.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_maintenance6.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_maintenance6 - device extension
 --
--- == VK_KHR_maintenance6
+-- = VK_KHR_maintenance6
 --
 -- [__Name String__]
 --     @VK_KHR_maintenance6@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
@@ -213,10 +213,7 @@
 --
 -- == See Also
 --
--- 'BindDescriptorSetsInfoKHR', 'BindMemoryStatusKHR',
--- 'PhysicalDeviceMaintenance6FeaturesKHR',
--- 'PhysicalDeviceMaintenance6PropertiesKHR', 'PushConstantsInfoKHR',
--- 'cmdBindDescriptorSets2KHR', 'cmdPushConstants2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance7.hs b/src/Vulkan/Extensions/VK_KHR_maintenance7.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_maintenance7.hs
@@ -0,0 +1,901 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_maintenance7 - device extension
+--
+-- = VK_KHR_maintenance7
+--
+-- [__Name String__]
+--     @VK_KHR_maintenance7@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     563
+--
+-- [__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 Vulkan Version 1.1>
+--
+-- [__Contact__]
+--
+--     -   Mike Blumenkrantz
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_maintenance7] @zmike%0A*Here describe the issue or question you have about the VK_KHR_maintenance7 extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_maintenance7.adoc VK_KHR_maintenance7>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-01-30
+--
+-- [__Interactions and External Dependencies__; __Contributors__]
+--
+--     -   Mike Blumenkrantz, Valve
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Pan Gao, Huawei
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Jon Leech, Khronos
+--
+--     -   Daniel Story, Nintendo
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Yiwei Zhang, Google
+--
+--     -   Matthew Netsch, Qualcomm
+--
+-- == Description
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance7 VK_KHR_maintenance7>
+-- adds a collection of minor features, none of which would warrant an
+-- entire extension of their own.
+--
+-- The proposed new features are as follows:
+--
+-- -   Add a property query to determine if a framebuffer writes to depth
+--     or stencil aspect does not trigger a write access in the sibling
+--     aspect. For example, this allows sampling stencil aspect as a
+--     texture while rendering to the sibling depth attachment and
+--     vice-versa given appropriate image layouts.
+--
+-- -   Add a way to query information regarding the underlying devices in
+--     environments where the Vulkan implementation is provided through
+--     layered implementations. For example, running on Mesa\/Venus, driver
+--     ID is returned as
+--     'Vulkan.Core12.Enums.DriverId.DRIVER_ID_MESA_VENUS', but it can be
+--     necessary to know what the real driver under the hood is. The new
+--     'PhysicalDeviceLayeredApiPropertiesKHR' structure can be used to
+--     gather information regarding layers underneath the top-level
+--     physical device.
+--
+-- -   Promote
+--     'Vulkan.Extensions.VK_EXT_nested_command_buffer.RENDERING_CONTENTS_INLINE_BIT_EXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_nested_command_buffer.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT'
+--     to KHR
+--
+-- -   Add a limit to report the maximum total count of dynamic uniform
+--     buffers and dynamic storage buffers that can be included in a
+--     pipeline layout.
+--
+-- -   Require that for an unsigned integer query, the 32-bit result value
+--     /must/ be equal to the 32 least significant bits of the equivalent
+--     64-bit result value.
+--
+-- -   Add query for robust access support when using fragment shading rate
+--     attachments
+--
+-- == New Structures
+--
+-- -   'PhysicalDeviceLayeredApiPropertiesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceMaintenance7FeaturesKHR'
+--
+-- -   Extending 'PhysicalDeviceLayeredApiPropertiesKHR':
+--
+--     -   'PhysicalDeviceLayeredApiVulkanPropertiesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceLayeredApiPropertiesListKHR'
+--
+--     -   'PhysicalDeviceMaintenance7PropertiesKHR'
+--
+-- == New Enums
+--
+-- -   'PhysicalDeviceLayeredApiKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_MAINTENANCE_7_EXTENSION_NAME'
+--
+-- -   'KHR_MAINTENANCE_7_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits':
+--
+--     -   'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_INLINE_BIT_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.SubpassContents.SubpassContents':
+--
+--     -   'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR'
+--
+-- == Issues
+--
+-- None.
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-01-30 (Jon Leech)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance7 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_maintenance7  ( PhysicalDeviceMaintenance7FeaturesKHR(..)
+                                              , PhysicalDeviceMaintenance7PropertiesKHR(..)
+                                              , PhysicalDeviceLayeredApiPropertiesListKHR(..)
+                                              , PhysicalDeviceLayeredApiPropertiesKHR(..)
+                                              , PhysicalDeviceLayeredApiVulkanPropertiesKHR(..)
+                                              , PhysicalDeviceLayeredApiKHR( PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR
+                                                                           , PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR
+                                                                           , PHYSICAL_DEVICE_LAYERED_API_METAL_KHR
+                                                                           , PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR
+                                                                           , PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR
+                                                                           , ..
+                                                                           )
+                                              , KHR_MAINTENANCE_7_SPEC_VERSION
+                                              , pattern KHR_MAINTENANCE_7_SPEC_VERSION
+                                              , KHR_MAINTENANCE_7_EXTENSION_NAME
+                                              , pattern KHR_MAINTENANCE_7_EXTENSION_NAME
+                                              ) where
+
+import Vulkan.CStruct.Utils (FixedArray)
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Data.Typeable (eqT)
+import Foreign.Marshal.Alloc (allocaBytes)
+import GHC.Ptr (castPtr)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showsPrec)
+import Data.ByteString (packCString)
+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 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 Data.Int (Int32)
+import Foreign.Ptr (Ptr)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Word (Word32)
+import Data.ByteString (ByteString)
+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.CStruct.Utils (lowerArrayPtr)
+import Vulkan.CStruct.Extends (peekSomeCStruct)
+import Vulkan.CStruct.Utils (pokeFixedLengthNullTerminatedByteString)
+import Vulkan.CStruct.Extends (pokeSomeCStruct)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.CStruct.Extends (Chain)
+import Vulkan.CStruct.Extends (Extends)
+import Vulkan.CStruct.Extends (Extendss)
+import Vulkan.CStruct.Extends (Extensible(..))
+import Vulkan.Core10.APIConstants (MAX_PHYSICAL_DEVICE_NAME_SIZE)
+import Vulkan.CStruct.Extends (PeekChain)
+import Vulkan.CStruct.Extends (PeekChain(..))
+import Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceProperties2)
+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 Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR))
+-- | VkPhysicalDeviceMaintenance7FeaturesKHR - Structure describing whether
+-- the implementation supports maintenance7 functionality
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceMaintenance7FeaturesKHR' 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. 'PhysicalDeviceMaintenance7FeaturesKHR' /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_maintenance7 VK_KHR_maintenance7>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceMaintenance7FeaturesKHR = PhysicalDeviceMaintenance7FeaturesKHR
+  { -- | #features-maintenance7# @maintenance7@ indicates that the implementation
+    -- supports the following:
+    --
+    -- -   The
+    --     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_INLINE_BIT_KHR'
+    --     and
+    --     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR'
+    --     flags /can/ be used to record commands in render pass instances both
+    --     inline and in secondary command buffers executed with
+    --     'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' for dynamic
+    --     rendering and legacy render passes respectively.
+    --
+    -- -   Querying information regarding the underlying devices in
+    --     environments where the Vulkan implementation is provided through
+    --     layered implementations. This is done by chaining
+    --     'PhysicalDeviceLayeredApiPropertiesListKHR' to
+    --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'.
+    --
+    -- -   New limits which indicate the maximum total count of dynamic uniform
+    --     buffers and dynamic storage buffers that /can/ be included in a
+    --     pipeline layout.
+    --
+    -- -   32-bit timestamp queries /must/ wrap on overflow
+    --
+    -- -   A property that indicates whether a fragment shading rate attachment
+    --     can have a size that is too small to cover a specified render area.
+    --
+    -- -   A property that indicates support for writing to one aspect of a
+    --     depth\/stencil attachment without performing a read-modify-write
+    --     operation on the other aspect
+    maintenance7 :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceMaintenance7FeaturesKHR)
+#endif
+deriving instance Show PhysicalDeviceMaintenance7FeaturesKHR
+
+instance ToCStruct PhysicalDeviceMaintenance7FeaturesKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceMaintenance7FeaturesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (maintenance7))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceMaintenance7FeaturesKHR where
+  peekCStruct p = do
+    maintenance7 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceMaintenance7FeaturesKHR
+             (bool32ToBool maintenance7)
+
+instance Storable PhysicalDeviceMaintenance7FeaturesKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceMaintenance7FeaturesKHR where
+  zero = PhysicalDeviceMaintenance7FeaturesKHR
+           zero
+
+
+-- | VkPhysicalDeviceMaintenance7PropertiesKHR - Structure describing various
+-- implementation-defined properties introduced with VK_KHR_maintenance7
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceMaintenance7PropertiesKHR' 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_maintenance7 VK_KHR_maintenance7>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceMaintenance7PropertiesKHR = PhysicalDeviceMaintenance7PropertiesKHR
+  { -- | #limits-robustFragmentShadingRateAttachmentAccess#
+    -- @robustFragmentShadingRateAttachmentAccess@ indicates whether the scaled
+    -- size of a fragment shading rate attachment /can/ be less than the size
+    -- of the render area. If @robustFragmentShadingRateAttachmentAccess@ is
+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', the size of the attachment
+    -- multiplied by the texel size /must/ be greater than or equal to the size
+    -- of the render area. If it is 'Vulkan.Core10.FundamentalTypes.TRUE' and
+    -- the fragment shading rate attachment was created with
+    -- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@ equal to
+    -- 0, the scaled size /can/ be smaller than the render area, and shading
+    -- rates for missing texels are defined by
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-replacement texel replacement for invalid texels>.
+    robustFragmentShadingRateAttachmentAccess :: Bool
+  , -- | #limits-separateDepthStencilAttachmentAccess#
+    -- @separateDepthStencilAttachmentAccess@ indicates support for writing to
+    -- one aspect of a depth\/stencil attachment without performing
+    -- read-modify-write operations on the other aspect. If this property is
+    -- 'Vulkan.Core10.FundamentalTypes.TRUE', writes to one aspect /must/ not
+    -- result in read-modify-write operations on the other aspect. If
+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', writes to one aspect /may/
+    -- result in writes to the other aspect as defined by
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations render pass load operations>,
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations render pass store operations>
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations render pass resolve operations>.
+    separateDepthStencilAttachmentAccess :: Bool
+  , -- | #limits-maxDescriptorSetTotalUniformBuffersDynamic#
+    -- @maxDescriptorSetTotalUniformBuffersDynamic@ is the maximum total count
+    -- of dynamic uniform buffers that /can/ be included in a pipeline layout.
+    -- Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+    -- count against this limit. Only descriptors 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. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.
+    maxDescriptorSetTotalUniformBuffersDynamic :: Word32
+  , -- | #limits-maxDescriptorSetTotalStorageBuffersDynamic#
+    -- @maxDescriptorSetTotalStorageBuffersDynamic@ is the maximum total count
+    -- of dynamic storage buffers that /can/ be included in a pipeline layout.
+    -- Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+    -- count against this limit. Only descriptors 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. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.
+    maxDescriptorSetTotalStorageBuffersDynamic :: Word32
+  , -- | #limits-maxDescriptorSetTotalBuffersDynamic#
+    -- @maxDescriptorSetTotalBuffersDynamic@ is the maximum total count of
+    -- dynamic uniform buffers and storage buffers that /can/ be included in a
+    -- pipeline layout. Descriptors with a type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+    -- or
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+    -- count against this limit. Only descriptors 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.
+    maxDescriptorSetTotalBuffersDynamic :: Word32
+  , -- | #limits-maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic#
+    -- @maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic@ is similar
+    -- to @maxDescriptorSetTotalUniformBuffersDynamic@ but counts descriptors
+    -- from descriptor sets created with or without the
+    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'
+    -- bit set.
+    maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic :: Word32
+  , -- | #limits-maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic#
+    -- @maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic@ is similar
+    -- to @maxDescriptorSetTotalStorageBuffersDynamic@ but counts descriptors
+    -- from descriptor sets created with or without the
+    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'
+    -- bit set.
+    maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic :: Word32
+  , -- | #limits-maxDescriptorSetUpdateAfterBindTotalBuffersDynamic#
+    -- @maxDescriptorSetUpdateAfterBindTotalBuffersDynamic@ is similar to
+    -- @maxDescriptorSetTotalBuffersDynamic@ but counts descriptors from
+    -- descriptor sets created with or without the
+    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'
+    -- bit set. While an application /can/ allocate dynamic storage buffer
+    -- descriptors from a pool created with the
+    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT',
+    -- bindings for these descriptors /must/ not be present in any descriptor
+    -- set layout that includes bindings created with
+    -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'.
+    maxDescriptorSetUpdateAfterBindTotalBuffersDynamic :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceMaintenance7PropertiesKHR)
+#endif
+deriving instance Show PhysicalDeviceMaintenance7PropertiesKHR
+
+instance ToCStruct PhysicalDeviceMaintenance7PropertiesKHR where
+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceMaintenance7PropertiesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (robustFragmentShadingRateAttachmentAccess))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (separateDepthStencilAttachmentAccess))
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxDescriptorSetTotalUniformBuffersDynamic)
+    poke ((p `plusPtr` 28 :: Ptr Word32)) (maxDescriptorSetTotalStorageBuffersDynamic)
+    poke ((p `plusPtr` 32 :: Ptr Word32)) (maxDescriptorSetTotalBuffersDynamic)
+    poke ((p `plusPtr` 36 :: Ptr Word32)) (maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic)
+    poke ((p `plusPtr` 40 :: Ptr Word32)) (maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic)
+    poke ((p `plusPtr` 44 :: Ptr Word32)) (maxDescriptorSetUpdateAfterBindTotalBuffersDynamic)
+    f
+  cStructSize = 48
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_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 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)
+    f
+
+instance FromCStruct PhysicalDeviceMaintenance7PropertiesKHR where
+  peekCStruct p = do
+    robustFragmentShadingRateAttachmentAccess <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    separateDepthStencilAttachmentAccess <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    maxDescriptorSetTotalUniformBuffersDynamic <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    maxDescriptorSetTotalStorageBuffersDynamic <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
+    maxDescriptorSetTotalBuffersDynamic <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
+    maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
+    maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
+    maxDescriptorSetUpdateAfterBindTotalBuffersDynamic <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))
+    pure $ PhysicalDeviceMaintenance7PropertiesKHR
+             (bool32ToBool robustFragmentShadingRateAttachmentAccess)
+             (bool32ToBool separateDepthStencilAttachmentAccess)
+             maxDescriptorSetTotalUniformBuffersDynamic
+             maxDescriptorSetTotalStorageBuffersDynamic
+             maxDescriptorSetTotalBuffersDynamic
+             maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic
+             maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic
+             maxDescriptorSetUpdateAfterBindTotalBuffersDynamic
+
+instance Storable PhysicalDeviceMaintenance7PropertiesKHR where
+  sizeOf ~_ = 48
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceMaintenance7PropertiesKHR where
+  zero = PhysicalDeviceMaintenance7PropertiesKHR
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceLayeredApiPropertiesListKHR - Structure describing
+-- layered implementations underneath the Vulkan physical device
+--
+-- = Description
+--
+-- If @pLayeredApis@ is @NULL@, then the number of layered implementations
+-- that are underneath the top-most Vulkan physical device (i.e. the one
+-- returned by
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2')
+-- is returned in @layeredApiCount@. Otherwise, @layeredApiCount@ /must/ be
+-- set by the application to the number of elements in the @pLayeredApis@
+-- array, and on return the variable is overwritten with the number of
+-- values actually written to @pLayeredApis@. If the value of
+-- @layeredApiCount@ is less than the number of layered implementations
+-- underneath the Vulkan physical device, at most @layeredApiCount@ values
+-- will be written to @pLayeredApis@. An implementation that is not a layer
+-- will return 0 in @layeredApiCount@.
+--
+-- In the presence of multiple layered implementations, each element of
+-- @pLayeredApis@ corresponds to an API implementation that is implemented
+-- on top of the API at the previous index. If there are layered
+-- implementations underneath a non-Vulkan implementation, they may not be
+-- visible in this query as the corresponding APIs may lack such a query.
+--
+-- If the 'PhysicalDeviceLayeredApiPropertiesListKHR' 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)
+--
+-- -   #VUID-VkPhysicalDeviceLayeredApiPropertiesListKHR-sType-sType#
+--     @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR'
+--
+-- -   #VUID-VkPhysicalDeviceLayeredApiPropertiesListKHR-pLayeredApis-parameter#
+--     If @layeredApiCount@ is not @0@, and @pLayeredApis@ is not @NULL@,
+--     @pLayeredApis@ /must/ be a valid pointer to an array of
+--     @layeredApiCount@ 'PhysicalDeviceLayeredApiPropertiesKHR' structures
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance7 VK_KHR_maintenance7>,
+-- 'PhysicalDeviceLayeredApiPropertiesKHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceLayeredApiPropertiesListKHR = PhysicalDeviceLayeredApiPropertiesListKHR
+  { -- | @layeredApiCount@ is an integer related to the number of layered
+    -- implementations underneath the Vulkan physical device, as described
+    -- below.
+    layeredApiCount :: Word32
+  , -- | @pLayeredApis@ is a pointer to an array of
+    -- 'PhysicalDeviceLayeredApiPropertiesKHR' in which information regarding
+    -- the layered implementations underneath the Vulkan physical device are
+    -- returned.
+    layeredApis :: Ptr (PhysicalDeviceLayeredApiPropertiesKHR '[])
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceLayeredApiPropertiesListKHR)
+#endif
+deriving instance Show PhysicalDeviceLayeredApiPropertiesListKHR
+
+instance ToCStruct PhysicalDeviceLayeredApiPropertiesListKHR where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceLayeredApiPropertiesListKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (layeredApiCount)
+    poke ((p `plusPtr` 24 :: Ptr (Ptr (PhysicalDeviceLayeredApiPropertiesKHR _)))) (layeredApis)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct PhysicalDeviceLayeredApiPropertiesListKHR where
+  peekCStruct p = do
+    layeredApiCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pLayeredApis <- peek @(Ptr (PhysicalDeviceLayeredApiPropertiesKHR _)) ((p `plusPtr` 24 :: Ptr (Ptr (PhysicalDeviceLayeredApiPropertiesKHR _))))
+    pure $ PhysicalDeviceLayeredApiPropertiesListKHR
+             layeredApiCount pLayeredApis
+
+instance Storable PhysicalDeviceLayeredApiPropertiesListKHR where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceLayeredApiPropertiesListKHR where
+  zero = PhysicalDeviceLayeredApiPropertiesListKHR
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceLayeredApiPropertiesKHR - Structure describing a single
+-- layered implementation underneath the Vulkan physical device
+--
+-- = Description
+--
+-- If @layeredAPI@ is 'PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR', additional
+-- Vulkan-specific information can be queried by including the
+-- 'PhysicalDeviceLayeredApiVulkanPropertiesKHR' structure in the @pNext@
+-- chain. Otherwise if such a structure is included in the @pNext@ chain,
+-- it is ignored.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPhysicalDeviceLayeredApiPropertiesKHR-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR'
+--
+-- -   #VUID-VkPhysicalDeviceLayeredApiPropertiesKHR-pNext-pNext# @pNext@
+--     /must/ be @NULL@ or a pointer to a valid instance of
+--     'PhysicalDeviceLayeredApiVulkanPropertiesKHR'
+--
+-- -   #VUID-VkPhysicalDeviceLayeredApiPropertiesKHR-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_KHR_maintenance7 VK_KHR_maintenance7>,
+-- 'PhysicalDeviceLayeredApiKHR',
+-- 'PhysicalDeviceLayeredApiPropertiesListKHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceLayeredApiPropertiesKHR (es :: [Type]) = PhysicalDeviceLayeredApiPropertiesKHR
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @vendorID@ is a unique identifier for the vendor of the layered
+    -- implementation.
+    vendorID :: Word32
+  , -- | @deviceID@ is a unique identifier for the layered implementation among
+    -- devices available from the vendor.
+    deviceID :: Word32
+  , -- | @layeredAPI@ is a 'PhysicalDeviceLayeredApiKHR' specifying the API
+    -- implemented by the layered implementation.
+    layeredAPI :: PhysicalDeviceLayeredApiKHR
+  , -- | @deviceName@ is an array of
+    -- 'Vulkan.Core10.APIConstants.MAX_PHYSICAL_DEVICE_NAME_SIZE' @char@
+    -- containing a null-terminated UTF-8 string which is the name of the
+    -- device.
+    deviceName :: ByteString
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceLayeredApiPropertiesKHR (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (PhysicalDeviceLayeredApiPropertiesKHR es)
+
+instance Extensible PhysicalDeviceLayeredApiPropertiesKHR where
+  extensibleTypeName = "PhysicalDeviceLayeredApiPropertiesKHR"
+  setNext PhysicalDeviceLayeredApiPropertiesKHR{..} next' = PhysicalDeviceLayeredApiPropertiesKHR{next = next', ..}
+  getNext PhysicalDeviceLayeredApiPropertiesKHR{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceLayeredApiPropertiesKHR e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @PhysicalDeviceLayeredApiVulkanPropertiesKHR = Just f
+    | otherwise = Nothing
+
+instance ( Extendss PhysicalDeviceLayeredApiPropertiesKHR es
+         , PokeChain es ) => ToCStruct (PhysicalDeviceLayeredApiPropertiesKHR es) where
+  withCStruct x f = allocaBytes 288 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceLayeredApiPropertiesKHR{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (vendorID)
+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (deviceID)
+    lift $ poke ((p `plusPtr` 24 :: Ptr PhysicalDeviceLayeredApiKHR)) (layeredAPI)
+    lift $ pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 28 :: Ptr (FixedArray MAX_PHYSICAL_DEVICE_NAME_SIZE CChar))) (deviceName)
+    lift $ f
+  cStructSize = 288
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
+    lift $ poke ((p `plusPtr` 24 :: Ptr PhysicalDeviceLayeredApiKHR)) (zero)
+    lift $ pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 28 :: Ptr (FixedArray MAX_PHYSICAL_DEVICE_NAME_SIZE CChar))) (mempty)
+    lift $ f
+
+instance ( Extendss PhysicalDeviceLayeredApiPropertiesKHR es
+         , PeekChain es ) => FromCStruct (PhysicalDeviceLayeredApiPropertiesKHR es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    vendorID <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    deviceID <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    layeredAPI <- peek @PhysicalDeviceLayeredApiKHR ((p `plusPtr` 24 :: Ptr PhysicalDeviceLayeredApiKHR))
+    deviceName <- packCString (lowerArrayPtr ((p `plusPtr` 28 :: Ptr (FixedArray MAX_PHYSICAL_DEVICE_NAME_SIZE CChar))))
+    pure $ PhysicalDeviceLayeredApiPropertiesKHR
+             next vendorID deviceID layeredAPI deviceName
+
+instance es ~ '[] => Zero (PhysicalDeviceLayeredApiPropertiesKHR es) where
+  zero = PhysicalDeviceLayeredApiPropertiesKHR
+           ()
+           zero
+           zero
+           zero
+           mempty
+
+
+-- | VkPhysicalDeviceLayeredApiVulkanPropertiesKHR - Structure describing
+-- physical device properties of a layered Vulkan implementation underneath
+-- the Vulkan physical device
+--
+-- = Description
+--
+-- The implementation /must/ zero-fill the contents of
+-- @properties.properties.limits@ and
+-- @properties.properties.sparseProperties@.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPhysicalDeviceLayeredApiVulkanPropertiesKHR-pNext-10011#
+--     Only
+--     'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.PhysicalDeviceDriverProperties'
+--     and
+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties'
+--     are allowed in the @pNext@ chain of @properties@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPhysicalDeviceLayeredApiVulkanPropertiesKHR-sType-sType#
+--     @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance7 VK_KHR_maintenance7>,
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceLayeredApiVulkanPropertiesKHR = PhysicalDeviceLayeredApiVulkanPropertiesKHR
+  { -- | @properties@ is a
+    -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'
+    -- in which properties of the underlying layered Vulkan implementation are
+    -- returned.
+    properties :: SomeStruct PhysicalDeviceProperties2 }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceLayeredApiVulkanPropertiesKHR)
+#endif
+deriving instance Show PhysicalDeviceLayeredApiVulkanPropertiesKHR
+
+instance ToCStruct PhysicalDeviceLayeredApiVulkanPropertiesKHR where
+  withCStruct x f = allocaBytes 856 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceLayeredApiVulkanPropertiesKHR{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    ContT $ pokeSomeCStruct (forgetExtensions ((p `plusPtr` 16 :: Ptr (PhysicalDeviceProperties2 _)))) (properties) . ($ ())
+    lift $ f
+  cStructSize = 856
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    ContT $ pokeSomeCStruct (forgetExtensions ((p `plusPtr` 16 :: Ptr (PhysicalDeviceProperties2 _)))) ((SomeStruct zero)) . ($ ())
+    lift $ f
+
+instance FromCStruct PhysicalDeviceLayeredApiVulkanPropertiesKHR where
+  peekCStruct p = do
+    properties <- peekSomeCStruct (forgetExtensions ((p `plusPtr` 16 :: Ptr (PhysicalDeviceProperties2 _))))
+    pure $ PhysicalDeviceLayeredApiVulkanPropertiesKHR
+             properties
+
+instance Zero PhysicalDeviceLayeredApiVulkanPropertiesKHR where
+  zero = PhysicalDeviceLayeredApiVulkanPropertiesKHR
+           (SomeStruct zero)
+
+
+-- | VkPhysicalDeviceLayeredApiKHR - API implemented by the layered
+-- implementation
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance7 VK_KHR_maintenance7>,
+-- 'PhysicalDeviceLayeredApiPropertiesKHR'
+newtype PhysicalDeviceLayeredApiKHR = PhysicalDeviceLayeredApiKHR Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR' - the device implements the
+-- Vulkan API.
+pattern PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR = PhysicalDeviceLayeredApiKHR 0
+
+-- | 'PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR' - the device implements the
+-- D3D12 API.
+pattern PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR = PhysicalDeviceLayeredApiKHR 1
+
+-- | 'PHYSICAL_DEVICE_LAYERED_API_METAL_KHR' - the device implements the
+-- Metal API.
+pattern PHYSICAL_DEVICE_LAYERED_API_METAL_KHR = PhysicalDeviceLayeredApiKHR 2
+
+-- | 'PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR' - the device implements the
+-- OpenGL API.
+pattern PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR = PhysicalDeviceLayeredApiKHR 3
+
+-- | 'PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR' - the device implements the
+-- OpenGL ES API.
+pattern PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR = PhysicalDeviceLayeredApiKHR 4
+
+{-# COMPLETE
+  PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR
+  , PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR
+  , PHYSICAL_DEVICE_LAYERED_API_METAL_KHR
+  , PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR
+  , PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR ::
+    PhysicalDeviceLayeredApiKHR
+  #-}
+
+conNamePhysicalDeviceLayeredApiKHR :: String
+conNamePhysicalDeviceLayeredApiKHR = "PhysicalDeviceLayeredApiKHR"
+
+enumPrefixPhysicalDeviceLayeredApiKHR :: String
+enumPrefixPhysicalDeviceLayeredApiKHR = "PHYSICAL_DEVICE_LAYERED_API_"
+
+showTablePhysicalDeviceLayeredApiKHR :: [(PhysicalDeviceLayeredApiKHR, String)]
+showTablePhysicalDeviceLayeredApiKHR =
+  [
+    ( PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR
+    , "VULKAN_KHR"
+    )
+  ,
+    ( PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR
+    , "D3D12_KHR"
+    )
+  ,
+    ( PHYSICAL_DEVICE_LAYERED_API_METAL_KHR
+    , "METAL_KHR"
+    )
+  ,
+    ( PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR
+    , "OPENGL_KHR"
+    )
+  ,
+    ( PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR
+    , "OPENGLES_KHR"
+    )
+  ]
+
+instance Show PhysicalDeviceLayeredApiKHR where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixPhysicalDeviceLayeredApiKHR
+      showTablePhysicalDeviceLayeredApiKHR
+      conNamePhysicalDeviceLayeredApiKHR
+      (\(PhysicalDeviceLayeredApiKHR x) -> x)
+      (showsPrec 11)
+
+instance Read PhysicalDeviceLayeredApiKHR where
+  readPrec =
+    enumReadPrec
+      enumPrefixPhysicalDeviceLayeredApiKHR
+      showTablePhysicalDeviceLayeredApiKHR
+      conNamePhysicalDeviceLayeredApiKHR
+      PhysicalDeviceLayeredApiKHR
+
+type KHR_MAINTENANCE_7_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_KHR_MAINTENANCE_7_SPEC_VERSION"
+pattern KHR_MAINTENANCE_7_SPEC_VERSION :: forall a . Integral a => a
+pattern KHR_MAINTENANCE_7_SPEC_VERSION = 1
+
+
+type KHR_MAINTENANCE_7_EXTENSION_NAME = "VK_KHR_maintenance7"
+
+-- No documentation found for TopLevel "VK_KHR_MAINTENANCE_7_EXTENSION_NAME"
+pattern KHR_MAINTENANCE_7_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern KHR_MAINTENANCE_7_EXTENSION_NAME = "VK_KHR_maintenance7"
+
diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance7.hs-boot b/src/Vulkan/Extensions/VK_KHR_maintenance7.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_maintenance7.hs-boot
@@ -0,0 +1,227 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_maintenance7 - device extension
+--
+-- = VK_KHR_maintenance7
+--
+-- [__Name String__]
+--     @VK_KHR_maintenance7@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     563
+--
+-- [__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 Vulkan Version 1.1>
+--
+-- [__Contact__]
+--
+--     -   Mike Blumenkrantz
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_maintenance7] @zmike%0A*Here describe the issue or question you have about the VK_KHR_maintenance7 extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_maintenance7.adoc VK_KHR_maintenance7>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-01-30
+--
+-- [__Interactions and External Dependencies__; __Contributors__]
+--
+--     -   Mike Blumenkrantz, Valve
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Pan Gao, Huawei
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Jon Leech, Khronos
+--
+--     -   Daniel Story, Nintendo
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Yiwei Zhang, Google
+--
+--     -   Matthew Netsch, Qualcomm
+--
+-- == Description
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance7 VK_KHR_maintenance7>
+-- adds a collection of minor features, none of which would warrant an
+-- entire extension of their own.
+--
+-- The proposed new features are as follows:
+--
+-- -   Add a property query to determine if a framebuffer writes to depth
+--     or stencil aspect does not trigger a write access in the sibling
+--     aspect. For example, this allows sampling stencil aspect as a
+--     texture while rendering to the sibling depth attachment and
+--     vice-versa given appropriate image layouts.
+--
+-- -   Add a way to query information regarding the underlying devices in
+--     environments where the Vulkan implementation is provided through
+--     layered implementations. For example, running on Mesa\/Venus, driver
+--     ID is returned as
+--     'Vulkan.Core12.Enums.DriverId.DRIVER_ID_MESA_VENUS', but it can be
+--     necessary to know what the real driver under the hood is. The new
+--     'PhysicalDeviceLayeredApiPropertiesKHR' structure can be used to
+--     gather information regarding layers underneath the top-level
+--     physical device.
+--
+-- -   Promote
+--     'Vulkan.Extensions.VK_EXT_nested_command_buffer.RENDERING_CONTENTS_INLINE_BIT_EXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_nested_command_buffer.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT'
+--     to KHR
+--
+-- -   Add a limit to report the maximum total count of dynamic uniform
+--     buffers and dynamic storage buffers that can be included in a
+--     pipeline layout.
+--
+-- -   Require that for an unsigned integer query, the 32-bit result value
+--     /must/ be equal to the 32 least significant bits of the equivalent
+--     64-bit result value.
+--
+-- -   Add query for robust access support when using fragment shading rate
+--     attachments
+--
+-- == New Structures
+--
+-- -   'PhysicalDeviceLayeredApiPropertiesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceMaintenance7FeaturesKHR'
+--
+-- -   Extending 'PhysicalDeviceLayeredApiPropertiesKHR':
+--
+--     -   'PhysicalDeviceLayeredApiVulkanPropertiesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceLayeredApiPropertiesListKHR'
+--
+--     -   'PhysicalDeviceMaintenance7PropertiesKHR'
+--
+-- == New Enums
+--
+-- -   'PhysicalDeviceLayeredApiKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_MAINTENANCE_7_EXTENSION_NAME'
+--
+-- -   'KHR_MAINTENANCE_7_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits':
+--
+--     -   'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_INLINE_BIT_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.SubpassContents.SubpassContents':
+--
+--     -   'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR'
+--
+-- == Issues
+--
+-- None.
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-01-30 (Jon Leech)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance7 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_maintenance7  ( PhysicalDeviceLayeredApiPropertiesKHR
+                                              , PhysicalDeviceLayeredApiPropertiesListKHR
+                                              , PhysicalDeviceLayeredApiVulkanPropertiesKHR
+                                              , PhysicalDeviceMaintenance7FeaturesKHR
+                                              , PhysicalDeviceMaintenance7PropertiesKHR
+                                              ) 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 PhysicalDeviceLayeredApiPropertiesKHR nominal
+data PhysicalDeviceLayeredApiPropertiesKHR (es :: [Type])
+
+instance ( Extendss PhysicalDeviceLayeredApiPropertiesKHR es
+         , PokeChain es ) => ToCStruct (PhysicalDeviceLayeredApiPropertiesKHR es)
+instance Show (Chain es) => Show (PhysicalDeviceLayeredApiPropertiesKHR es)
+
+instance ( Extendss PhysicalDeviceLayeredApiPropertiesKHR es
+         , PeekChain es ) => FromCStruct (PhysicalDeviceLayeredApiPropertiesKHR es)
+
+
+data PhysicalDeviceLayeredApiPropertiesListKHR
+
+instance ToCStruct PhysicalDeviceLayeredApiPropertiesListKHR
+instance Show PhysicalDeviceLayeredApiPropertiesListKHR
+
+instance FromCStruct PhysicalDeviceLayeredApiPropertiesListKHR
+
+
+data PhysicalDeviceLayeredApiVulkanPropertiesKHR
+
+instance ToCStruct PhysicalDeviceLayeredApiVulkanPropertiesKHR
+instance Show PhysicalDeviceLayeredApiVulkanPropertiesKHR
+
+instance FromCStruct PhysicalDeviceLayeredApiVulkanPropertiesKHR
+
+
+data PhysicalDeviceMaintenance7FeaturesKHR
+
+instance ToCStruct PhysicalDeviceMaintenance7FeaturesKHR
+instance Show PhysicalDeviceMaintenance7FeaturesKHR
+
+instance FromCStruct PhysicalDeviceMaintenance7FeaturesKHR
+
+
+data PhysicalDeviceMaintenance7PropertiesKHR
+
+instance ToCStruct PhysicalDeviceMaintenance7PropertiesKHR
+instance Show PhysicalDeviceMaintenance7PropertiesKHR
+
+instance FromCStruct PhysicalDeviceMaintenance7PropertiesKHR
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_map_memory2 - device extension
 --
--- == VK_KHR_map_memory2
+-- = VK_KHR_map_memory2
 --
 -- [__Name String__]
 --     @VK_KHR_map_memory2@
@@ -49,10 +49,9 @@
 -- == Description
 --
 -- This extension provides extensible versions of the Vulkan memory map and
--- 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.
+-- unmap commands. The new commands are functionally identical to the core
+-- commands, except that their parameters are specified using extensible
+-- structures that can be used to pass extension-specific information.
 --
 -- == New Commands
 --
@@ -66,6 +65,10 @@
 --
 -- -   'MemoryUnmapInfoKHR'
 --
+-- == New Enums
+--
+-- -   'MemoryUnmapFlagBitsKHR'
+--
 -- == New Bitmasks
 --
 -- -   'MemoryUnmapFlagsKHR'
@@ -94,8 +97,7 @@
 --
 -- == See Also
 --
--- 'MemoryMapInfoKHR', 'MemoryUnmapFlagsKHR', 'MemoryUnmapInfoKHR',
--- 'mapMemory2KHR', 'unmapMemory2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -108,7 +110,10 @@
                                              , unmapMemory2KHR
                                              , MemoryMapInfoKHR(..)
                                              , MemoryUnmapInfoKHR(..)
-                                             , MemoryUnmapFlagsKHR(..)
+                                             , MemoryUnmapFlagsKHR
+                                             , MemoryUnmapFlagBitsKHR( MEMORY_UNMAP_RESERVE_BIT_EXT
+                                                                     , ..
+                                                                     )
                                              , KHR_MAP_MEMORY_2_SPEC_VERSION
                                              , pattern KHR_MAP_MEMORY_2_SPEC_VERSION
                                              , KHR_MAP_MEMORY_2_EXTENSION_NAME
@@ -123,11 +128,13 @@
 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 GHC.Base (when)
 import GHC.IO (throwIO)
+import GHC.Ptr (castPtr)
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
@@ -143,6 +150,7 @@
 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))
@@ -157,7 +165,9 @@
 import GHC.Show (Show(showsPrec))
 import Data.Kind (Type)
 import Control.Monad.Trans.Cont (ContT(..))
+import Vulkan.CStruct.Extends (forgetExtensions)
 import Vulkan.NamedType ((:::))
+import Vulkan.CStruct.Extends (Chain)
 import Vulkan.Core10.Handles (Device)
 import Vulkan.Core10.Handles (Device(..))
 import Vulkan.Core10.Handles (Device(Device))
@@ -166,10 +176,19 @@
 import Vulkan.Core10.Handles (DeviceMemory)
 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 (Flags)
-import Vulkan.Core10.Enums.MemoryMapFlags (MemoryMapFlags)
+import Vulkan.Core10.Enums.MemoryMapFlagBits (MemoryMapFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_map_memory_placed (MemoryMapPlacedInfoEXT)
+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.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Exception (VulkanException(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR))
@@ -180,7 +199,7 @@
   unsafe
 #endif
   "dynamic" mkVkMapMemory2KHR
-  :: FunPtr (Ptr Device_T -> Ptr MemoryMapInfoKHR -> Ptr (Ptr ()) -> IO Result) -> Ptr Device_T -> Ptr MemoryMapInfoKHR -> Ptr (Ptr ()) -> IO Result
+  :: FunPtr (Ptr Device_T -> Ptr (SomeStruct MemoryMapInfoKHR) -> Ptr (Ptr ()) -> IO Result) -> Ptr Device_T -> Ptr (SomeStruct MemoryMapInfoKHR) -> Ptr (Ptr ()) -> IO Result
 
 -- | vkMapMemory2KHR - Map a memory object into application address space
 --
@@ -208,8 +227,8 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_map_memory2 VK_KHR_map_memory2>,
 -- 'Vulkan.Core10.Handles.Device', 'MemoryMapInfoKHR'
-mapMemory2KHR :: forall io
-               . (MonadIO io)
+mapMemory2KHR :: forall a io
+               . (Extendss MemoryMapInfoKHR a, PokeChain a, MonadIO io)
               => -- | @device@ is the logical device that owns the memory.
                  --
                  -- #VUID-vkMapMemory2KHR-device-parameter# @device@ /must/ be a valid
@@ -220,7 +239,7 @@
                  --
                  -- #VUID-vkMapMemory2KHR-pMemoryMapInfo-parameter# @pMemoryMapInfo@ /must/
                  -- be a valid pointer to a valid 'MemoryMapInfoKHR' structure
-                 MemoryMapInfoKHR
+                 (MemoryMapInfoKHR a)
               -> io (("data" ::: Ptr ()))
 mapMemory2KHR device memoryMapInfo = liftIO . evalContT $ do
   let vkMapMemory2KHRPtr = pVkMapMemory2KHR (case device of Device{deviceCmds} -> deviceCmds)
@@ -231,7 +250,7 @@
   pPpData <- ContT $ bracket (callocBytes @(Ptr ()) 8) free
   r <- lift $ traceAroundEvent "vkMapMemory2KHR" (vkMapMemory2KHR'
                                                     (deviceHandle (device))
-                                                    pMemoryMapInfo
+                                                    (forgetExtensions pMemoryMapInfo)
                                                     (pPpData))
   lift $ when (r < SUCCESS) (throwIO (VulkanException r))
   ppData <- lift $ peek @(Ptr ()) pPpData
@@ -259,6 +278,10 @@
 --
 --     -   '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_MEMORY_MAP_FAILED'
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_map_memory2 VK_KHR_map_memory2>,
@@ -283,10 +306,10 @@
     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkUnmapMemory2KHR is null" Nothing Nothing
   let vkUnmapMemory2KHR' = mkVkUnmapMemory2KHR vkUnmapMemory2KHRPtr
   pMemoryUnmapInfo <- ContT $ withCStruct (memoryUnmapInfo)
-  _ <- lift $ traceAroundEvent "vkUnmapMemory2KHR" (vkUnmapMemory2KHR'
+  r <- lift $ traceAroundEvent "vkUnmapMemory2KHR" (vkUnmapMemory2KHR'
                                                       (deviceHandle (device))
                                                       pMemoryUnmapInfo)
-  pure $ ()
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
 
 
 -- | VkMemoryMapInfoKHR - Structure containing parameters of a memory map
@@ -315,15 +338,81 @@
 -- -   #VUID-VkMemoryMapInfoKHR-memory-07963# @memory@ /must/ not have been
 --     allocated with multiple instances
 --
+-- -   #VUID-VkMemoryMapInfoKHR-flags-09569# If
+--     'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT' is
+--     set in @flags@, the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-memoryMapPlaced memoryMapPlaced>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkMemoryMapInfoKHR-flags-09570# If
+--     'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT' is
+--     set in @flags@, the @pNext@ chain /must/ include a
+--     'Vulkan.Extensions.VK_EXT_map_memory_placed.MemoryMapPlacedInfoEXT'
+--     structure and
+--     'Vulkan.Extensions.VK_EXT_map_memory_placed.MemoryMapPlacedInfoEXT'::@pPlacedAddress@
+--     /must/ not be @NULL@
+--
+-- -   #VUID-VkMemoryMapInfoKHR-flags-09571# If
+--     'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT' is
+--     set in @flags@ and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-memoryMapRangePlaced memoryMapRangePlaced>
+--     feature is not enabled, @offset@ /must/ be zero
+--
+-- -   #VUID-VkMemoryMapInfoKHR-flags-09572# If
+--     'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT' is
+--     set in @flags@ and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-memoryMapRangePlaced memoryMapRangePlaced>
+--     feature is not enabled, @size@ /must/ be
+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE' or
+--     'Vulkan.Core10.Memory.MemoryAllocateInfo'::@allocationSize@
+--
+-- -   #VUID-VkMemoryMapInfoKHR-flags-09573# If
+--     'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT' is
+--     set in @flags@ and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-memoryMapRangePlaced memoryMapRangePlaced>
+--     feature is enabled, @offset@ /must/ be aligned to an integer
+--     multiple of
+--     'Vulkan.Extensions.VK_EXT_map_memory_placed.PhysicalDeviceMapMemoryPlacedPropertiesEXT'::@minPlacedMemoryMapAlignment@
+--
+-- -   #VUID-VkMemoryMapInfoKHR-flags-09574# If
+--     'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT' is
+--     set in @flags@ and @size@ is not
+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be aligned to
+--     an integer multiple of
+--     'Vulkan.Extensions.VK_EXT_map_memory_placed.PhysicalDeviceMapMemoryPlacedPropertiesEXT'::@minPlacedMemoryMapAlignment@
+--
+-- -   #VUID-VkMemoryMapInfoKHR-flags-09651# If
+--     'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT' is
+--     set in @flags@ and @size@ is
+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE',
+--     'Vulkan.Core10.Memory.MemoryAllocateInfo'::@allocationSize@ /must/
+--     be aligned to an integer multiple of
+--     'Vulkan.Extensions.VK_EXT_map_memory_placed.PhysicalDeviceMapMemoryPlacedPropertiesEXT'::@minPlacedMemoryMapAlignment@
+--
+-- -   #VUID-VkMemoryMapInfoKHR-flags-09575# If
+--     'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT' is
+--     set in @flags@, the memory object /must/ not have been imported from
+--     a handle type of
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT'
+--     or
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT'
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkMemoryMapInfoKHR-sType-sType# @sType@ /must/ be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR'
 --
--- -   #VUID-VkMemoryMapInfoKHR-pNext-pNext# @pNext@ /must/ be @NULL@
+-- -   #VUID-VkMemoryMapInfoKHR-pNext-pNext# @pNext@ /must/ be @NULL@ or a
+--     pointer to a valid instance of
+--     'Vulkan.Extensions.VK_EXT_map_memory_placed.MemoryMapPlacedInfoEXT'
 --
--- -   #VUID-VkMemoryMapInfoKHR-flags-zerobitmask# @flags@ /must/ be @0@
+-- -   #VUID-VkMemoryMapInfoKHR-sType-unique# The @sType@ value of each
+--     struct in the @pNext@ chain /must/ be unique
 --
+-- -   #VUID-VkMemoryMapInfoKHR-flags-parameter# @flags@ /must/ be a valid
+--     combination of
+--     'Vulkan.Core10.Enums.MemoryMapFlagBits.MemoryMapFlagBits' values
+--
 -- -   #VUID-VkMemoryMapInfoKHR-memory-parameter# @memory@ /must/ be a
 --     valid 'Vulkan.Core10.Handles.DeviceMemory' handle
 --
@@ -336,10 +425,14 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_map_memory2 VK_KHR_map_memory2>,
 -- 'Vulkan.Core10.Handles.DeviceMemory',
 -- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
--- 'Vulkan.Core10.Enums.MemoryMapFlags.MemoryMapFlags',
+-- 'Vulkan.Core10.Enums.MemoryMapFlagBits.MemoryMapFlags',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'mapMemory2KHR'
-data MemoryMapInfoKHR = MemoryMapInfoKHR
-  { -- | @flags@ is reserved for future use.
+data MemoryMapInfoKHR (es :: [Type]) = MemoryMapInfoKHR
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.MemoryMapFlagBits.MemoryMapFlagBits' specifying
+    -- additional parameters of the memory map operation.
     flags :: MemoryMapFlags
   , -- | @memory@ is the 'Vulkan.Core10.Handles.DeviceMemory' object to be
     -- mapped.
@@ -352,49 +445,59 @@
     -- of the allocation.
     size :: DeviceSize
   }
-  deriving (Typeable, Eq)
+  deriving (Typeable)
 #if defined(GENERIC_INSTANCES)
-deriving instance Generic (MemoryMapInfoKHR)
+deriving instance Generic (MemoryMapInfoKHR (es :: [Type]))
 #endif
-deriving instance Show MemoryMapInfoKHR
+deriving instance Show (Chain es) => Show (MemoryMapInfoKHR es)
 
-instance ToCStruct MemoryMapInfoKHR where
+instance Extensible MemoryMapInfoKHR where
+  extensibleTypeName = "MemoryMapInfoKHR"
+  setNext MemoryMapInfoKHR{..} next' = MemoryMapInfoKHR{next = next', ..}
+  getNext MemoryMapInfoKHR{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends MemoryMapInfoKHR e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @MemoryMapPlacedInfoEXT = Just f
+    | otherwise = Nothing
+
+instance ( Extendss MemoryMapInfoKHR es
+         , PokeChain es ) => ToCStruct (MemoryMapInfoKHR es) where
   withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p MemoryMapInfoKHR{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr MemoryMapFlags)) (flags)
-    poke ((p `plusPtr` 24 :: Ptr DeviceMemory)) (memory)
-    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (offset)
-    poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (size)
-    f
+  pokeCStruct p MemoryMapInfoKHR{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr MemoryMapFlags)) (flags)
+    lift $ poke ((p `plusPtr` 24 :: Ptr DeviceMemory)) (memory)
+    lift $ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (offset)
+    lift $ poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (size)
+    lift $ f
   cStructSize = 48
   cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 24 :: Ptr DeviceMemory)) (zero)
-    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)
-    poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (zero)
-    f
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 24 :: Ptr DeviceMemory)) (zero)
+    lift $ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)
+    lift $ poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (zero)
+    lift $ f
 
-instance FromCStruct MemoryMapInfoKHR where
+instance ( Extendss MemoryMapInfoKHR es
+         , PeekChain es ) => FromCStruct (MemoryMapInfoKHR es) where
   peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
     flags <- peek @MemoryMapFlags ((p `plusPtr` 16 :: Ptr MemoryMapFlags))
     memory <- peek @DeviceMemory ((p `plusPtr` 24 :: Ptr DeviceMemory))
     offset <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))
     size <- peek @DeviceSize ((p `plusPtr` 40 :: Ptr DeviceSize))
     pure $ MemoryMapInfoKHR
-             flags memory offset size
-
-instance Storable MemoryMapInfoKHR where
-  sizeOf ~_ = 48
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
+             next flags memory offset size
 
-instance Zero MemoryMapInfoKHR where
+instance es ~ '[] => Zero (MemoryMapInfoKHR es) where
   zero = MemoryMapInfoKHR
+           ()
            zero
            zero
            zero
@@ -409,6 +512,18 @@
 -- -   #VUID-VkMemoryUnmapInfoKHR-memory-07964# @memory@ /must/ be
 --     currently host mapped
 --
+-- -   #VUID-VkMemoryUnmapInfoKHR-flags-09579# If
+--     'MEMORY_UNMAP_RESERVE_BIT_EXT' is set in @flags@, the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-memoryUnmapReserve memoryUnmapReserve>
+--     /must/ be enabled
+--
+-- -   #VUID-VkMemoryUnmapInfoKHR-flags-09580# If
+--     'MEMORY_UNMAP_RESERVE_BIT_EXT' is set in @flags@, the memory object
+--     /must/ not have been imported from a handle type of
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT'
+--     or
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT'
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkMemoryUnmapInfoKHR-sType-sType# @sType@ /must/ be
@@ -416,7 +531,8 @@
 --
 -- -   #VUID-VkMemoryUnmapInfoKHR-pNext-pNext# @pNext@ /must/ be @NULL@
 --
--- -   #VUID-VkMemoryUnmapInfoKHR-flags-zerobitmask# @flags@ /must/ be @0@
+-- -   #VUID-VkMemoryUnmapInfoKHR-flags-parameter# @flags@ /must/ be a
+--     valid combination of 'MemoryUnmapFlagBitsKHR' values
 --
 -- -   #VUID-VkMemoryUnmapInfoKHR-memory-parameter# @memory@ /must/ be a
 --     valid 'Vulkan.Core10.Handles.DeviceMemory' handle
@@ -431,7 +547,8 @@
 -- 'Vulkan.Core10.Handles.DeviceMemory', 'MemoryUnmapFlagsKHR',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'unmapMemory2KHR'
 data MemoryUnmapInfoKHR = MemoryUnmapInfoKHR
-  { -- | @flags@ is reserved for future use.
+  { -- | @flags@ is a bitmask of 'MemoryUnmapFlagBitsKHR' specifying additional
+    -- parameters of the memory map operation.
     flags :: MemoryUnmapFlagsKHR
   , -- | @memory@ is the 'Vulkan.Core10.Handles.DeviceMemory' object to be
     -- unmapped.
@@ -478,45 +595,58 @@
            zero
 
 
--- | VkMemoryUnmapFlagsKHR - Reserved for future use
---
--- = Description
---
--- @VkMemoryMapFlagsKHR@ is a bitmask type for setting a mask, but is
--- currently reserved for future use.
+type MemoryUnmapFlagsKHR = MemoryUnmapFlagBitsKHR
+
+-- | VkMemoryUnmapFlagBitsKHR - Bitmask specifying additional parameters of a
+-- memory unmap
 --
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_map_memory2 VK_KHR_map_memory2>,
--- 'MemoryUnmapInfoKHR'
-newtype MemoryUnmapFlagsKHR = MemoryUnmapFlagsKHR Flags
+-- 'MemoryUnmapFlagsKHR'
+newtype MemoryUnmapFlagBitsKHR = MemoryUnmapFlagBitsKHR Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
-conNameMemoryUnmapFlagsKHR :: String
-conNameMemoryUnmapFlagsKHR = "MemoryUnmapFlagsKHR"
+-- | 'MEMORY_UNMAP_RESERVE_BIT_EXT' requests that virtual address range
+-- currently occupied by the memory map remain reserved after the
+-- 'unmapMemory2KHR' call completes. Future system memory map operations or
+-- calls to 'Vulkan.Core10.Memory.mapMemory' or 'mapMemory2KHR' will not
+-- return addresses in that range unless the range has since been
+-- unreserved by the application or the mapping is explicitly placed in
+-- that range by calling 'mapMemory2KHR' with
+-- 'Vulkan.Core10.Enums.MemoryMapFlagBits.MEMORY_MAP_PLACED_BIT_EXT', or
+-- doing the system memory map equivalent. When
+-- 'MEMORY_UNMAP_RESERVE_BIT_EXT' is set, the memory unmap operation /may/
+-- fail, in which case the memory object will remain host mapped and
+-- 'unmapMemory2KHR' will return
+-- 'Vulkan.Core10.Enums.Result.ERROR_MEMORY_MAP_FAILED'.
+pattern MEMORY_UNMAP_RESERVE_BIT_EXT = MemoryUnmapFlagBitsKHR 0x00000001
 
-enumPrefixMemoryUnmapFlagsKHR :: String
-enumPrefixMemoryUnmapFlagsKHR = ""
+conNameMemoryUnmapFlagBitsKHR :: String
+conNameMemoryUnmapFlagBitsKHR = "MemoryUnmapFlagBitsKHR"
 
-showTableMemoryUnmapFlagsKHR :: [(MemoryUnmapFlagsKHR, String)]
-showTableMemoryUnmapFlagsKHR = []
+enumPrefixMemoryUnmapFlagBitsKHR :: String
+enumPrefixMemoryUnmapFlagBitsKHR = "MEMORY_UNMAP_RESERVE_BIT_EXT"
 
-instance Show MemoryUnmapFlagsKHR where
+showTableMemoryUnmapFlagBitsKHR :: [(MemoryUnmapFlagBitsKHR, String)]
+showTableMemoryUnmapFlagBitsKHR = [(MEMORY_UNMAP_RESERVE_BIT_EXT, "")]
+
+instance Show MemoryUnmapFlagBitsKHR where
   showsPrec =
     enumShowsPrec
-      enumPrefixMemoryUnmapFlagsKHR
-      showTableMemoryUnmapFlagsKHR
-      conNameMemoryUnmapFlagsKHR
-      (\(MemoryUnmapFlagsKHR x) -> x)
+      enumPrefixMemoryUnmapFlagBitsKHR
+      showTableMemoryUnmapFlagBitsKHR
+      conNameMemoryUnmapFlagBitsKHR
+      (\(MemoryUnmapFlagBitsKHR x) -> x)
       (\x -> showString "0x" . showHex x)
 
-instance Read MemoryUnmapFlagsKHR where
+instance Read MemoryUnmapFlagBitsKHR where
   readPrec =
     enumReadPrec
-      enumPrefixMemoryUnmapFlagsKHR
-      showTableMemoryUnmapFlagsKHR
-      conNameMemoryUnmapFlagsKHR
-      MemoryUnmapFlagsKHR
+      enumPrefixMemoryUnmapFlagBitsKHR
+      showTableMemoryUnmapFlagBitsKHR
+      conNameMemoryUnmapFlagBitsKHR
+      MemoryUnmapFlagBitsKHR
 
 type KHR_MAP_MEMORY_2_SPEC_VERSION = 1
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_map_memory2 - device extension
 --
--- == VK_KHR_map_memory2
+-- = VK_KHR_map_memory2
 --
 -- [__Name String__]
 --     @VK_KHR_map_memory2@
@@ -49,10 +49,9 @@
 -- == Description
 --
 -- This extension provides extensible versions of the Vulkan memory map and
--- 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.
+-- unmap commands. The new commands are functionally identical to the core
+-- commands, except that their parameters are specified using extensible
+-- structures that can be used to pass extension-specific information.
 --
 -- == New Commands
 --
@@ -66,6 +65,10 @@
 --
 -- -   'MemoryUnmapInfoKHR'
 --
+-- == New Enums
+--
+-- -   'MemoryUnmapFlagBitsKHR'
+--
 -- == New Bitmasks
 --
 -- -   'MemoryUnmapFlagsKHR'
@@ -94,8 +97,7 @@
 --
 -- == See Also
 --
--- 'MemoryMapInfoKHR', 'MemoryUnmapFlagsKHR', 'MemoryUnmapInfoKHR',
--- 'mapMemory2KHR', 'unmapMemory2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -111,13 +113,19 @@
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
-
-data MemoryMapInfoKHR
+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 MemoryMapInfoKHR nominal
+data MemoryMapInfoKHR (es :: [Type])
 
-instance ToCStruct MemoryMapInfoKHR
-instance Show MemoryMapInfoKHR
+instance ( Extendss MemoryMapInfoKHR es
+         , PokeChain es ) => ToCStruct (MemoryMapInfoKHR es)
+instance Show (Chain es) => Show (MemoryMapInfoKHR es)
 
-instance FromCStruct MemoryMapInfoKHR
+instance ( Extendss MemoryMapInfoKHR es
+         , PeekChain es ) => FromCStruct (MemoryMapInfoKHR es)
 
 
 data MemoryUnmapInfoKHR
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_multiview - device extension
 --
--- == VK_KHR_multiview
+-- = VK_KHR_multiview
 --
 -- [__Name String__]
 --     @VK_KHR_multiview@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -48,7 +50,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_multiview.txt GL_EXT_multiview>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GL_EXT_multiview.txt GL_EXT_multiview>
 --
 -- [__Contributors__]
 --
@@ -75,14 +77,14 @@
 -- shader extension, which adds a new @ViewIndex@ built-in type that allows
 -- shaders to control what to do for each view. If using GLSL there is also
 -- the
--- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_multiview.txt GL_EXT_multiview>
+-- <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GL_EXT_multiview.txt GL_EXT_multiview>
 -- extension that introduces a @highp int gl_ViewIndex;@ built-in variable
 -- for vertex, tessellation, geometry, and fragment shaders.
 --
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -137,9 +139,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceMultiviewFeaturesKHR',
--- 'PhysicalDeviceMultiviewPropertiesKHR',
--- 'RenderPassMultiviewCreateInfoKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_performance_query - device extension
 --
--- == VK_KHR_performance_query
+-- = VK_KHR_performance_query
 --
 -- [__Name String__]
 --     @VK_KHR_performance_query@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -454,20 +454,7 @@
 --
 -- == See Also
 --
--- 'AcquireProfilingLockFlagBitsKHR', 'AcquireProfilingLockFlagsKHR',
--- 'AcquireProfilingLockInfoKHR',
--- 'PerformanceCounterDescriptionFlagBitsKHR',
--- 'PerformanceCounterDescriptionFlagsKHR',
--- 'PerformanceCounterDescriptionKHR', 'PerformanceCounterKHR',
--- 'PerformanceCounterResultKHR', 'PerformanceCounterScopeKHR',
--- 'PerformanceCounterStorageKHR', 'PerformanceCounterUnitKHR',
--- 'PerformanceQuerySubmitInfoKHR',
--- 'PhysicalDevicePerformanceQueryFeaturesKHR',
--- 'PhysicalDevicePerformanceQueryPropertiesKHR',
--- 'QueryPoolPerformanceCreateInfoKHR', 'acquireProfilingLockKHR',
--- 'enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR',
--- 'getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR',
--- 'releaseProfilingLockKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -645,14 +632,14 @@
 --
 -- If @pCounters@ is @NULL@ and @pCounterDescriptions@ is @NULL@, then the
 -- number of counters available is returned in @pCounterCount@. Otherwise,
--- @pCounterCount@ /must/ point to a variable set by the user to the number
--- of elements in the @pCounters@, @pCounterDescriptions@, or both arrays
--- and on return the variable is overwritten with the number of structures
--- actually written out. If @pCounterCount@ is less than the number of
--- counters available, at most @pCounterCount@ 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 counters were returned.
+-- @pCounterCount@ /must/ point to a variable set by the application to the
+-- number of elements in the @pCounters@, @pCounterDescriptions@, or both
+-- arrays and on return the variable is overwritten with the number of
+-- structures actually written out. If @pCounterCount@ is less than the
+-- number of counters available, at most @pCounterCount@ 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 counters were returned.
 --
 -- == Valid Usage (Implicit)
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_performance_query - device extension
 --
--- == VK_KHR_performance_query
+-- = VK_KHR_performance_query
 --
 -- [__Name String__]
 --     @VK_KHR_performance_query@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -454,20 +454,7 @@
 --
 -- == See Also
 --
--- 'AcquireProfilingLockFlagBitsKHR', 'AcquireProfilingLockFlagsKHR',
--- 'AcquireProfilingLockInfoKHR',
--- 'PerformanceCounterDescriptionFlagBitsKHR',
--- 'PerformanceCounterDescriptionFlagsKHR',
--- 'PerformanceCounterDescriptionKHR', 'PerformanceCounterKHR',
--- 'PerformanceCounterResultKHR', 'PerformanceCounterScopeKHR',
--- 'PerformanceCounterStorageKHR', 'PerformanceCounterUnitKHR',
--- 'PerformanceQuerySubmitInfoKHR',
--- 'PhysicalDevicePerformanceQueryFeaturesKHR',
--- 'PhysicalDevicePerformanceQueryPropertiesKHR',
--- 'QueryPoolPerformanceCreateInfoKHR', 'acquireProfilingLockKHR',
--- 'enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR',
--- 'getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR',
--- 'releaseProfilingLockKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_binary.hs b/src/Vulkan/Extensions/VK_KHR_pipeline_binary.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_pipeline_binary.hs
@@ -0,0 +1,1759 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_pipeline_binary - device extension
+--
+-- = VK_KHR_pipeline_binary
+--
+-- [__Name String__]
+--     @VK_KHR_pipeline_binary@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     484
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
+--
+-- [__Contact__]
+--
+--     -   Stu Smith
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_pipeline_binary] @stu-s%0A*Here describe the issue or question you have about the VK_KHR_pipeline_binary extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_pipeline_binary.adoc VK_KHR_pipeline_binary>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-07-01
+--
+-- [__Contributors__]
+--
+--     -   Stu Smith, AMD
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Alan Harrison, AMD
+--
+--     -   Maciej Jesionowski, AMD
+--
+--     -   Younggwan Kim, Arm
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   Ting Wei, Arm
+--
+--     -   Chris Glover, Google
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Jakub Kuderski, Google
+--
+--     -   Piotr Byszewski, Mobica
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Ralph Potter, Samsung
+--
+--     -   Matthew Netsch, Qualcomm
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Samuel Pitoiset, Valve
+--
+--     -   Tatsuyuki Ishi, Valve
+--
+-- == Description
+--
+-- This extension provides a method to obtain binary data associated with
+-- individual pipelines such that applications can manage caching
+-- themselves instead of using VkPipelineCache objects.
+--
+-- == New Object Types
+--
+-- -   'Vulkan.Extensions.Handles.PipelineBinaryKHR'
+--
+-- == New Commands
+--
+-- -   'createPipelineBinariesKHR'
+--
+-- -   'destroyPipelineBinaryKHR'
+--
+-- -   'getPipelineBinaryDataKHR'
+--
+-- -   'getPipelineKeyKHR'
+--
+-- -   'releaseCapturedPipelineDataKHR'
+--
+-- == New Structures
+--
+-- -   'PipelineBinaryCreateInfoKHR'
+--
+-- -   'PipelineBinaryDataInfoKHR'
+--
+-- -   'PipelineBinaryDataKHR'
+--
+-- -   'PipelineBinaryHandlesInfoKHR'
+--
+-- -   'PipelineBinaryKeyKHR'
+--
+-- -   'PipelineBinaryKeysAndDataKHR'
+--
+-- -   'PipelineCreateInfoKHR'
+--
+-- -   'ReleaseCapturedPipelineDataInfoKHR'
+--
+-- -   Extending 'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'DevicePipelineBinaryInternalCacheControlKHR'
+--
+-- -   Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
+--     'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',
+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR':
+--
+--     -   'PipelineBinaryInfoKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDevicePipelineBinaryFeaturesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDevicePipelineBinaryPropertiesKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_PIPELINE_BINARY_EXTENSION_NAME'
+--
+-- -   'KHR_PIPELINE_BINARY_SPEC_VERSION'
+--
+-- -   'Vulkan.Core10.APIConstants.MAX_PIPELINE_BINARY_KEY_SIZE_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':
+--
+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_PIPELINE_BINARY_KHR'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.Result.Result':
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_NOT_ENOUGH_SPACE_KHR'
+--
+--     -   'Vulkan.Core10.Enums.Result.PIPELINE_BINARY_MISSING_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR'
+--
+-- == Version History
+--
+-- -   Revision 1, 2021-12-10 (Chris Glover)
+--
+--     -   Initial draft.
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_binary 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_pipeline_binary  ( createPipelineBinariesKHR
+                                                 , destroyPipelineBinaryKHR
+                                                 , getPipelineKeyKHR
+                                                 , getPipelineBinaryDataKHR
+                                                 , releaseCapturedPipelineDataKHR
+                                                 , PipelineBinaryCreateInfoKHR(..)
+                                                 , PipelineBinaryHandlesInfoKHR(..)
+                                                 , PipelineBinaryDataKHR(..)
+                                                 , PipelineBinaryKeysAndDataKHR(..)
+                                                 , PipelineBinaryKeyKHR(..)
+                                                 , PipelineBinaryInfoKHR(..)
+                                                 , ReleaseCapturedPipelineDataInfoKHR(..)
+                                                 , PipelineBinaryDataInfoKHR(..)
+                                                 , PipelineCreateInfoKHR(..)
+                                                 , PhysicalDevicePipelineBinaryFeaturesKHR(..)
+                                                 , DevicePipelineBinaryInternalCacheControlKHR(..)
+                                                 , PhysicalDevicePipelineBinaryPropertiesKHR(..)
+                                                 , KHR_PIPELINE_BINARY_SPEC_VERSION
+                                                 , pattern KHR_PIPELINE_BINARY_SPEC_VERSION
+                                                 , KHR_PIPELINE_BINARY_EXTENSION_NAME
+                                                 , pattern KHR_PIPELINE_BINARY_EXTENSION_NAME
+                                                 , PipelineBinaryKHR(..)
+                                                 , PipelineCreateFlagBits2KHR(..)
+                                                 , PipelineCreateFlags2KHR
+                                                 , MAX_PIPELINE_BINARY_KEY_SIZE_KHR
+                                                 , pattern MAX_PIPELINE_BINARY_KEY_SIZE_KHR
+                                                 ) where
+
+import Vulkan.CStruct.Utils (FixedArray)
+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 Data.ByteString (packCStringLen)
+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 Foreign.C.Types (CSize(..))
+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.C.Types (CChar)
+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 (FunPtr)
+import Foreign.Ptr (Ptr)
+import Data.Word (Word32)
+import Data.Word (Word64)
+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.CStruct.Utils (peekByteStringFromSizedVectorPtr)
+import Vulkan.CStruct.Utils (pokeFixedLengthByteString)
+import Vulkan.NamedType ((:::))
+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
+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(pVkCreatePipelineBinariesKHR))
+import Vulkan.Dynamic (DeviceCmds(pVkDestroyPipelineBinaryKHR))
+import Vulkan.Dynamic (DeviceCmds(pVkGetPipelineBinaryDataKHR))
+import Vulkan.Dynamic (DeviceCmds(pVkGetPipelineKeyKHR))
+import Vulkan.Dynamic (DeviceCmds(pVkReleaseCapturedPipelineDataKHR))
+import Vulkan.Core10.Handles (Device_T)
+import Vulkan.Core10.APIConstants (MAX_PIPELINE_BINARY_KEY_SIZE_KHR)
+import Vulkan.Core10.Handles (Pipeline)
+import Vulkan.Extensions.Handles (PipelineBinaryKHR)
+import Vulkan.Extensions.Handles (PipelineBinaryKHR(..))
+import Vulkan.Core10.Enums.Result (Result)
+import Vulkan.Core10.Enums.Result (Result(..))
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR))
+import Vulkan.Core10.Enums.Result (Result(SUCCESS))
+import Vulkan.Core10.APIConstants (MAX_PIPELINE_BINARY_KEY_SIZE_KHR)
+import Vulkan.Extensions.Handles (PipelineBinaryKHR(..))
+import Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlagBits2KHR(..))
+import Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlags2KHR)
+import Vulkan.Core10.APIConstants (pattern MAX_PIPELINE_BINARY_KEY_SIZE_KHR)
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCreatePipelineBinariesKHR
+  :: FunPtr (Ptr Device_T -> Ptr PipelineBinaryCreateInfoKHR -> Ptr AllocationCallbacks -> Ptr PipelineBinaryHandlesInfoKHR -> IO Result) -> Ptr Device_T -> Ptr PipelineBinaryCreateInfoKHR -> Ptr AllocationCallbacks -> Ptr PipelineBinaryHandlesInfoKHR -> IO Result
+
+-- | vkCreatePipelineBinariesKHR - Create pipeline binaries from a pipeline
+-- or previously retrieved data
+--
+-- = Description
+--
+-- The implementation will attempt to create all pipeline binaries. If
+-- creation fails for any pipeline binary, then:
+--
+-- -   The corresponding entry in the @pPipelineBinaries@ output array will
+--     be filled with 'Vulkan.Core10.APIConstants.NULL_HANDLE'.
+--
+-- -   The 'Vulkan.Core10.Enums.Result.Result' returned by
+--     'createPipelineBinariesKHR' will contain the error value for the
+--     first entry in the output array in @pBinaries@ containing
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCreatePipelineBinariesKHR-device-parameter# @device@ /must/
+--     be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkCreatePipelineBinariesKHR-pCreateInfo-parameter#
+--     @pCreateInfo@ /must/ be a valid pointer to a valid
+--     'PipelineBinaryCreateInfoKHR' structure
+--
+-- -   #VUID-vkCreatePipelineBinariesKHR-pAllocator-parameter# If
+--     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
+--     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
+--     structure
+--
+-- -   #VUID-vkCreatePipelineBinariesKHR-pBinaries-parameter# @pBinaries@
+--     /must/ be a valid pointer to a 'PipelineBinaryHandlesInfoKHR'
+--     structure
+--
+-- == 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'
+--
+--     -   'Vulkan.Core10.Enums.Result.PIPELINE_BINARY_MISSING_KHR'
+--
+-- [<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_INITIALIZATION_FAILED'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Handles.Device', 'PipelineBinaryCreateInfoKHR',
+-- 'PipelineBinaryHandlesInfoKHR'
+createPipelineBinariesKHR :: forall io
+                           . (MonadIO io)
+                          => -- | @device@ is the logical device that creates the pipeline binary objects.
+                             Device
+                          -> -- | @pCreateInfo@ is a pointer to a 'PipelineBinaryCreateInfoKHR' structure
+                             -- that contains the data to create the pipeline binaries from.
+                             PipelineBinaryCreateInfoKHR
+                          -> -- | @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, ("binaries" ::: PipelineBinaryHandlesInfoKHR))
+createPipelineBinariesKHR device createInfo allocator = liftIO . evalContT $ do
+  let vkCreatePipelineBinariesKHRPtr = pVkCreatePipelineBinariesKHR (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCreatePipelineBinariesKHRPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreatePipelineBinariesKHR is null" Nothing Nothing
+  let vkCreatePipelineBinariesKHR' = mkVkCreatePipelineBinariesKHR vkCreatePipelineBinariesKHRPtr
+  pCreateInfo <- ContT $ withCStruct (createInfo)
+  pAllocator <- case (allocator) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  pPBinaries <- ContT (withZeroCStruct @PipelineBinaryHandlesInfoKHR)
+  r <- lift $ traceAroundEvent "vkCreatePipelineBinariesKHR" (vkCreatePipelineBinariesKHR'
+                                                                (deviceHandle (device))
+                                                                pCreateInfo
+                                                                pAllocator
+                                                                (pPBinaries))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pBinaries <- lift $ peekCStruct @PipelineBinaryHandlesInfoKHR pPBinaries
+  pure $ (r, pBinaries)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkDestroyPipelineBinaryKHR
+  :: FunPtr (Ptr Device_T -> PipelineBinaryKHR -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> PipelineBinaryKHR -> Ptr AllocationCallbacks -> IO ()
+
+-- | vkDestroyPipelineBinaryKHR - Destroy a pipeline binary
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkDestroyPipelineBinaryKHR-pipelineBinary-09614# If
+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
+--     provided when @pipelineBinary@ was created, a compatible set of
+--     callbacks /must/ be provided here
+--
+-- -   #VUID-vkDestroyPipelineBinaryKHR-pipelineBinary-09615# If no
+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
+--     provided when @pipelineBinary@ was created, @pAllocator@ /must/ be
+--     @NULL@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkDestroyPipelineBinaryKHR-device-parameter# @device@ /must/
+--     be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkDestroyPipelineBinaryKHR-pipelineBinary-parameter# If
+--     @pipelineBinary@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pipelineBinary@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.PipelineBinaryKHR' handle
+--
+-- -   #VUID-vkDestroyPipelineBinaryKHR-pAllocator-parameter# If
+--     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
+--     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
+--     structure
+--
+-- -   #VUID-vkDestroyPipelineBinaryKHR-pipelineBinary-parent# If
+--     @pipelineBinary@ is a valid handle, it /must/ have been created,
+--     allocated, or retrieved from @device@
+--
+-- == Host Synchronization
+--
+-- -   Host access to @pipelineBinary@ /must/ be externally synchronized
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Handles.Device',
+-- 'Vulkan.Extensions.Handles.PipelineBinaryKHR'
+destroyPipelineBinaryKHR :: forall io
+                          . (MonadIO io)
+                         => -- | @device@ is the logical device that created the pipeline binary object.
+                            Device
+                         -> -- | @pipelineBinary@ is the handle of the pipeline binary object to destroy.
+                            PipelineBinaryKHR
+                         -> -- | @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 ()
+destroyPipelineBinaryKHR device
+                           pipelineBinary
+                           allocator = liftIO . evalContT $ do
+  let vkDestroyPipelineBinaryKHRPtr = pVkDestroyPipelineBinaryKHR (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkDestroyPipelineBinaryKHRPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyPipelineBinaryKHR is null" Nothing Nothing
+  let vkDestroyPipelineBinaryKHR' = mkVkDestroyPipelineBinaryKHR vkDestroyPipelineBinaryKHRPtr
+  pAllocator <- case (allocator) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  lift $ traceAroundEvent "vkDestroyPipelineBinaryKHR" (vkDestroyPipelineBinaryKHR'
+                                                          (deviceHandle (device))
+                                                          (pipelineBinary)
+                                                          pAllocator)
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetPipelineKeyKHR
+  :: FunPtr (Ptr Device_T -> Ptr PipelineCreateInfoKHR -> Ptr PipelineBinaryKeyKHR -> IO Result) -> Ptr Device_T -> Ptr PipelineCreateInfoKHR -> Ptr PipelineBinaryKeyKHR -> IO Result
+
+-- | vkGetPipelineKeyKHR - Generate the pipeline key from pipeline creation
+-- info
+--
+-- = Description
+--
+-- If @pPipelineCreateInfo@ is @NULL@, then the implementation /must/
+-- return the global key that applies to all pipelines. If the key obtained
+-- in this way changes between saving and restoring data obtained from
+-- 'getPipelineBinaryDataKHR' in a different
+-- 'Vulkan.Core10.Handles.Device', then the application /must/ assume that
+-- the restored data is invalid and cannot be passed to
+-- 'createPipelineBinariesKHR'. Otherwise the application /can/ assume the
+-- data is still valid.
+--
+-- If @pPipelineCreateInfo@ is not @NULL@, the key obtained functions as a
+-- method to compare two pipeline creation info structures. Implementations
+-- /may/ not compare parts of a pipeline creation info which would not
+-- contribute to the final binary output. If a shader module identifier is
+-- used instead of a shader module, the @pPipelineKey@ generated /must/ be
+-- equal to the key generated when using the shader module from which the
+-- identifier was queried. If the content of two @pPipelineKey@ are equal,
+-- pipelines created with the two @pPipelineCreateInfo->pname@:pNext create
+-- infos /must/ produce the same
+-- 'Vulkan.Extensions.Handles.PipelineBinaryKHR' contents.
+--
+-- The pipeline key is distinct from pipeline binary key. Pipeline binary
+-- keys /can/ only be obtained after compilation. The pipeline key is
+-- intended to optionally allow associating pipeline create info with
+-- multiple pipeline binary keys.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkGetPipelineKeyKHR-pNext-09605# The @pNext@ chain of
+--     @pPipelineCreateInfo@ /must/ not set
+--     'PipelineBinaryInfoKHR'::@binaryCount@ to a value greater than @0@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetPipelineKeyKHR-device-parameter# @device@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkGetPipelineKeyKHR-pPipelineCreateInfo-parameter# If
+--     @pPipelineCreateInfo@ is not @NULL@, @pPipelineCreateInfo@ /must/ be
+--     a valid pointer to a valid 'PipelineCreateInfoKHR' structure
+--
+-- -   #VUID-vkGetPipelineKeyKHR-pPipelineKey-parameter# @pPipelineKey@
+--     /must/ be a valid pointer to a 'PipelineBinaryKeyKHR' 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_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_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Core10.Handles.Device', 'PipelineBinaryKeyKHR',
+-- 'PipelineCreateInfoKHR'
+getPipelineKeyKHR :: forall io
+                   . (MonadIO io)
+                  => -- | @device@ is the logical device that creates the pipeline object.
+                     Device
+                  -> -- | @pPipelineCreateInfo@ is @NULL@ or a pointer to a
+                     -- 'PipelineCreateInfoKHR' structure.
+                     ("pipelineCreateInfo" ::: Maybe PipelineCreateInfoKHR)
+                  -> io (("pipelineKey" ::: PipelineBinaryKeyKHR))
+getPipelineKeyKHR device pipelineCreateInfo = liftIO . evalContT $ do
+  let vkGetPipelineKeyKHRPtr = pVkGetPipelineKeyKHR (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetPipelineKeyKHRPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPipelineKeyKHR is null" Nothing Nothing
+  let vkGetPipelineKeyKHR' = mkVkGetPipelineKeyKHR vkGetPipelineKeyKHRPtr
+  pPipelineCreateInfo <- case (pipelineCreateInfo) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  pPPipelineKey <- ContT (withZeroCStruct @PipelineBinaryKeyKHR)
+  r <- lift $ traceAroundEvent "vkGetPipelineKeyKHR" (vkGetPipelineKeyKHR'
+                                                        (deviceHandle (device))
+                                                        pPipelineCreateInfo
+                                                        (pPPipelineKey))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pPipelineKey <- lift $ peekCStruct @PipelineBinaryKeyKHR pPPipelineKey
+  pure $ (pPipelineKey)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetPipelineBinaryDataKHR
+  :: FunPtr (Ptr Device_T -> Ptr PipelineBinaryDataInfoKHR -> Ptr PipelineBinaryKeyKHR -> Ptr CSize -> Ptr () -> IO Result) -> Ptr Device_T -> Ptr PipelineBinaryDataInfoKHR -> Ptr PipelineBinaryKeyKHR -> Ptr CSize -> Ptr () -> IO Result
+
+-- | vkGetPipelineBinaryDataKHR - Get the data store from a pipeline binary
+--
+-- = Description
+--
+-- If @pPipelineBinaryData@ is @NULL@, then the size of the data, in bytes,
+-- that is required to store the binary is returned in
+-- @pPipelineBinaryDataSize@. Otherwise, @pPipelineBinaryDataSize@ /must/
+-- contain the size of the buffer, in bytes, pointed to by
+-- @pPipelineBinaryData@, and on return @pPipelineBinaryDataSize@ is
+-- overwritten with the size of the data, in bytes, that is required to
+-- store the binary. If @pPipelineBinaryDataSize@ is less than the size
+-- that is required to store the binary, nothing is written to
+-- @pPipelineBinaryData@ and
+-- 'Vulkan.Core10.Enums.Result.ERROR_NOT_ENOUGH_SPACE_KHR' will be
+-- returned, instead of 'Vulkan.Core10.Enums.Result.SUCCESS'.
+--
+-- If
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-pipelineBinaryCompressedData pipelineBinaryCompressedData>
+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', implementations /should/ not
+-- return compressed pipeline binary data to the application.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetPipelineBinaryDataKHR-device-parameter# @device@ /must/
+--     be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkGetPipelineBinaryDataKHR-pInfo-parameter# @pInfo@ /must/ be
+--     a valid pointer to a valid 'PipelineBinaryDataInfoKHR' structure
+--
+-- -   #VUID-vkGetPipelineBinaryDataKHR-pPipelineBinaryKey-parameter#
+--     @pPipelineBinaryKey@ /must/ be a valid pointer to a
+--     'PipelineBinaryKeyKHR' structure
+--
+-- -   #VUID-vkGetPipelineBinaryDataKHR-pPipelineBinaryDataSize-parameter#
+--     @pPipelineBinaryDataSize@ /must/ be a valid pointer to a @size_t@
+--     value
+--
+-- -   #VUID-vkGetPipelineBinaryDataKHR-pPipelineBinaryData-parameter# If
+--     the value referenced by @pPipelineBinaryDataSize@ is not @0@, and
+--     @pPipelineBinaryData@ is not @NULL@, @pPipelineBinaryData@ /must/ be
+--     a valid pointer to an array of @pPipelineBinaryDataSize@ bytes
+--
+-- == 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'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_NOT_ENOUGH_SPACE_KHR'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Core10.Handles.Device', 'PipelineBinaryDataInfoKHR',
+-- 'PipelineBinaryKeyKHR'
+getPipelineBinaryDataKHR :: forall io
+                          . (MonadIO io)
+                         => -- | @device@ is the logical device that created the pipeline binary.
+                            Device
+                         -> -- | @pInfo@ is a pointer to a 'PipelineBinaryDataInfoKHR' structure which
+                            -- describes the pipeline binary to get data from.
+                            PipelineBinaryDataInfoKHR
+                         -> io (PipelineBinaryKeyKHR, ("pipelineBinaryData" ::: ByteString))
+getPipelineBinaryDataKHR device info = liftIO . evalContT $ do
+  let vkGetPipelineBinaryDataKHRPtr = pVkGetPipelineBinaryDataKHR (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetPipelineBinaryDataKHRPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPipelineBinaryDataKHR is null" Nothing Nothing
+  let vkGetPipelineBinaryDataKHR' = mkVkGetPipelineBinaryDataKHR vkGetPipelineBinaryDataKHRPtr
+  let device' = deviceHandle (device)
+  pInfo <- ContT $ withCStruct (info)
+  pPPipelineBinaryKey <- ContT (withZeroCStruct @PipelineBinaryKeyKHR)
+  pPPipelineBinaryDataSize <- ContT $ bracket (callocBytes @CSize 8) free
+  r <- lift $ traceAroundEvent "vkGetPipelineBinaryDataKHR" (vkGetPipelineBinaryDataKHR'
+                                                               device'
+                                                               pInfo
+                                                               (pPPipelineBinaryKey)
+                                                               (pPPipelineBinaryDataSize)
+                                                               (nullPtr))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pPipelineBinaryDataSize <- lift $ peek @CSize pPPipelineBinaryDataSize
+  pPPipelineBinaryData <- ContT $ bracket (callocBytes @(()) (fromIntegral ((coerce @CSize @Word64 pPipelineBinaryDataSize)))) free
+  r' <- lift $ traceAroundEvent "vkGetPipelineBinaryDataKHR" (vkGetPipelineBinaryDataKHR'
+                                                                device'
+                                                                pInfo
+                                                                (pPPipelineBinaryKey)
+                                                                (pPPipelineBinaryDataSize)
+                                                                (pPPipelineBinaryData))
+  lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
+  pPipelineBinaryKey <- lift $ peekCStruct @PipelineBinaryKeyKHR pPPipelineBinaryKey
+  pPipelineBinaryDataSize'' <- lift $ peek @CSize pPPipelineBinaryDataSize
+  pPipelineBinaryData' <- lift $ packCStringLen  ( castPtr @() @CChar pPPipelineBinaryData
+                                                 , (fromIntegral ((coerce @CSize @Word64 pPipelineBinaryDataSize''))) )
+  pure $ (pPipelineBinaryKey, pPipelineBinaryData')
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkReleaseCapturedPipelineDataKHR
+  :: FunPtr (Ptr Device_T -> Ptr ReleaseCapturedPipelineDataInfoKHR -> Ptr AllocationCallbacks -> IO Result) -> Ptr Device_T -> Ptr ReleaseCapturedPipelineDataInfoKHR -> Ptr AllocationCallbacks -> IO Result
+
+-- | vkReleaseCapturedPipelineDataKHR - Release captured pipeline binary data
+--
+-- = Description
+--
+-- The implementation /may/ free any resources captured as a result of
+-- creating the pipeline with
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+-- and put the pipeline into a state as if
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+-- had not been provided at pipeline creation time.
+--
+-- Any resources captured as a result of creating the pipeline with
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+-- are implicitly freed by 'Vulkan.Core10.Pipeline.destroyPipeline'.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkReleaseCapturedPipelineDataKHR-pipeline-09611# If
+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
+--     provided when @pipeline@ was created, a compatible set of callbacks
+--     /must/ be provided in @pAllocator@
+--
+-- -   #VUID-vkReleaseCapturedPipelineDataKHR-pipeline-09612# If no
+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
+--     provided when @pipeline@ was created, @pAllocator@ /must/ be @NULL@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkReleaseCapturedPipelineDataKHR-device-parameter# @device@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkReleaseCapturedPipelineDataKHR-pInfo-parameter# @pInfo@
+--     /must/ be a valid pointer to a valid
+--     'ReleaseCapturedPipelineDataInfoKHR' structure
+--
+-- -   #VUID-vkReleaseCapturedPipelineDataKHR-pAllocator-parameter# If
+--     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
+--     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
+--     structure
+--
+-- == Host Synchronization
+--
+-- -   Host access to @pInfo->pipeline@ /must/ be externally synchronized
+--
+-- == 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>]
+--     None
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Handles.Device', 'ReleaseCapturedPipelineDataInfoKHR'
+releaseCapturedPipelineDataKHR :: forall io
+                                . (MonadIO io)
+                               => -- | @device@ is the logical device that created the pipeline object.
+                                  Device
+                               -> -- | @pInfo@ is a pointer to a 'ReleaseCapturedPipelineDataInfoKHR' structure
+                                  -- which describes the pipeline to release the data from.
+                                  ReleaseCapturedPipelineDataInfoKHR
+                               -> -- | @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 ()
+releaseCapturedPipelineDataKHR device info allocator = liftIO . evalContT $ do
+  let vkReleaseCapturedPipelineDataKHRPtr = pVkReleaseCapturedPipelineDataKHR (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkReleaseCapturedPipelineDataKHRPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkReleaseCapturedPipelineDataKHR is null" Nothing Nothing
+  let vkReleaseCapturedPipelineDataKHR' = mkVkReleaseCapturedPipelineDataKHR vkReleaseCapturedPipelineDataKHRPtr
+  pInfo <- ContT $ withCStruct (info)
+  pAllocator <- case (allocator) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  _ <- lift $ traceAroundEvent "vkReleaseCapturedPipelineDataKHR" (vkReleaseCapturedPipelineDataKHR'
+                                                                     (deviceHandle (device))
+                                                                     pInfo
+                                                                     pAllocator)
+  pure $ ()
+
+
+-- | VkPipelineBinaryCreateInfoKHR - Structure specifying where to retrieve
+-- data for pipeline binary creation
+--
+-- = Description
+--
+-- When @pPipelineCreateInfo@ is not @NULL@, an implementation will attempt
+-- to retrieve pipeline binary data from an internal cache external to the
+-- application if
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-pipelineBinaryInternalCache pipelineBinaryInternalCache>
+-- is 'Vulkan.Core10.FundamentalTypes.TRUE'. Applications /can/ use this to
+-- determine if a pipeline /can/ be created without compilation. If the
+-- implementation fails to create a pipeline binary due to missing an
+-- internal cache entry,
+-- 'Vulkan.Core10.Enums.Result.PIPELINE_BINARY_MISSING_KHR' is returned. If
+-- creation succeeds, the resulting binary /can/ be used to create a
+-- pipeline. 'Vulkan.Core10.Enums.Result.PIPELINE_BINARY_MISSING_KHR' /may/
+-- be returned for any reason in this situation, even if creating a
+-- pipeline binary with the same parameters that succeeded earlier.
+--
+-- If
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-pipelineBinaryPrecompiledInternalCache pipelineBinaryPrecompiledInternalCache>
+-- is 'Vulkan.Core10.FundamentalTypes.TRUE', the implementation /may/ be
+-- able to create pipeline binaries even when @pPipelineCreateInfo@ has not
+-- been used to create binaries before by the application.
+--
+-- On some platforms, internal pipeline caches may be pre-populated before
+-- running the application.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineBinaryCreateInfoKHR-pipeline-09607# If @pipeline@ is
+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @pipeline@ /must/ have
+--     been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+--
+-- -   #VUID-VkPipelineBinaryCreateInfoKHR-pipeline-09608# If @pipeline@ is
+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     'releaseCapturedPipelineDataKHR' /must/ not have been called on
+--     @pipeline@ prior to this command
+--
+-- -   #VUID-VkPipelineBinaryCreateInfoKHR-pipelineBinaryInternalCache-09609#
+--     If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-pipelineBinaryInternalCache pipelineBinaryInternalCache>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE' pPipelineCreateInfo /must/
+--     be @NULL@
+--
+-- -   #VUID-VkPipelineBinaryCreateInfoKHR-device-09610# If @device@ was
+--     created with
+--     'DevicePipelineBinaryInternalCacheControlKHR'::@disableInternalCache@
+--     set to 'Vulkan.Core10.FundamentalTypes.TRUE', @pPipelineCreateInfo@
+--     /must/ be @NULL@
+--
+-- -   #VUID-VkPipelineBinaryCreateInfoKHR-pKeysAndDataInfo-09619# One and
+--     only one of @pKeysAndDataInfo@, @pipeline@, or @pPipelineCreateInfo@
+--     /must/ be non-@NULL@
+--
+-- -   #VUID-VkPipelineBinaryCreateInfoKHR-pPipelineCreateInfo-09606# If
+--     @pPipelineCreateInfo@ is not @NULL@, the @pNext@ chain of
+--     @pPipelineCreateInfo@ /must/ not set
+--     'PipelineBinaryInfoKHR'::@binaryCount@ to a value greater than @0@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineBinaryCreateInfoKHR-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR'
+--
+-- -   #VUID-VkPipelineBinaryCreateInfoKHR-pNext-pNext# @pNext@ /must/ be
+--     @NULL@
+--
+-- -   #VUID-VkPipelineBinaryCreateInfoKHR-pKeysAndDataInfo-parameter# If
+--     @pKeysAndDataInfo@ is not @NULL@, @pKeysAndDataInfo@ /must/ be a
+--     valid pointer to a valid 'PipelineBinaryKeysAndDataKHR' structure
+--
+-- -   #VUID-VkPipelineBinaryCreateInfoKHR-pipeline-parameter# If
+--     @pipeline@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle
+--
+-- -   #VUID-VkPipelineBinaryCreateInfoKHR-pPipelineCreateInfo-parameter#
+--     If @pPipelineCreateInfo@ is not @NULL@, @pPipelineCreateInfo@ /must/
+--     be a valid pointer to a valid 'PipelineCreateInfoKHR' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Core10.Handles.Pipeline', 'PipelineBinaryKeysAndDataKHR',
+-- 'PipelineCreateInfoKHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'createPipelineBinariesKHR'
+data PipelineBinaryCreateInfoKHR = PipelineBinaryCreateInfoKHR
+  { -- | @pKeysAndDataInfo@ is @NULL@ or a pointer to a
+    -- 'PipelineBinaryKeysAndDataKHR' structure that contains keys and data to
+    -- create the pipeline binaries from.
+    keysAndDataInfo :: Maybe PipelineBinaryKeysAndDataKHR
+  , -- | @pipeline@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a
+    -- 'Vulkan.Core10.Handles.Pipeline' that contains data to create the
+    -- pipeline binaries from.
+    pipeline :: Pipeline
+  , -- | @pPipelineCreateInfo@ is @NULL@ or a pointer to a
+    -- 'PipelineCreateInfoKHR' structure with the pipeline creation info. This
+    -- is used to probe the implementation’s internal cache for pipeline
+    -- binaries.
+    pipelineCreateInfo :: Maybe PipelineCreateInfoKHR
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineBinaryCreateInfoKHR)
+#endif
+deriving instance Show PipelineBinaryCreateInfoKHR
+
+instance ToCStruct PipelineBinaryCreateInfoKHR where
+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineBinaryCreateInfoKHR{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    pKeysAndDataInfo'' <- case (keysAndDataInfo) of
+      Nothing -> pure nullPtr
+      Just j -> ContT $ withCStruct (j)
+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr PipelineBinaryKeysAndDataKHR))) pKeysAndDataInfo''
+    lift $ poke ((p `plusPtr` 24 :: Ptr Pipeline)) (pipeline)
+    pPipelineCreateInfo'' <- case (pipelineCreateInfo) of
+      Nothing -> pure nullPtr
+      Just j -> ContT $ withCStruct (j)
+    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreateInfoKHR))) pPipelineCreateInfo''
+    lift $ f
+  cStructSize = 40
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct PipelineBinaryCreateInfoKHR where
+  peekCStruct p = do
+    pKeysAndDataInfo <- peek @(Ptr PipelineBinaryKeysAndDataKHR) ((p `plusPtr` 16 :: Ptr (Ptr PipelineBinaryKeysAndDataKHR)))
+    pKeysAndDataInfo' <- maybePeek (\j -> peekCStruct @PipelineBinaryKeysAndDataKHR (j)) pKeysAndDataInfo
+    pipeline <- peek @Pipeline ((p `plusPtr` 24 :: Ptr Pipeline))
+    pPipelineCreateInfo <- peek @(Ptr PipelineCreateInfoKHR) ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreateInfoKHR)))
+    pPipelineCreateInfo' <- maybePeek (\j -> peekCStruct @PipelineCreateInfoKHR (j)) pPipelineCreateInfo
+    pure $ PipelineBinaryCreateInfoKHR
+             pKeysAndDataInfo' pipeline pPipelineCreateInfo'
+
+instance Zero PipelineBinaryCreateInfoKHR where
+  zero = PipelineBinaryCreateInfoKHR
+           Nothing
+           zero
+           Nothing
+
+
+-- | VkPipelineBinaryHandlesInfoKHR - Structure containing newly created
+-- pipeline binaries
+--
+-- = Description
+--
+-- If @pPipelineBinaries@ is @NULL@, the number of binaries that would be
+-- created is returned in @pipelineBinaryCount@. Otherwise,
+-- @pipelineBinaryCount@ /must/ be the number of entries in the
+-- @pPipelineBinaries@ array, and on return from
+-- 'createPipelineBinariesKHR' @pipelineBinaryCount@ is overwritten with
+-- the number of handles actually written to @pPipelineBinaries@. If the
+-- value of @pipelineBinaryCount@ is less than the number of binaries that
+-- would have been created, at most @pipelineBinaryCount@ handles will be
+-- written to @pPipelineBinaries@ and
+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of
+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that
+-- @pPipelineBinaries@ was not large enough to create all the binaries.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineBinaryHandlesInfoKHR-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR'
+--
+-- -   #VUID-VkPipelineBinaryHandlesInfoKHR-pNext-pNext# @pNext@ /must/ be
+--     @NULL@
+--
+-- -   #VUID-VkPipelineBinaryHandlesInfoKHR-pPipelineBinaries-parameter# If
+--     @pipelineBinaryCount@ is not @0@, and @pPipelineBinaries@ is not
+--     @NULL@, @pPipelineBinaries@ /must/ be a valid pointer to an array of
+--     @pipelineBinaryCount@ 'Vulkan.Extensions.Handles.PipelineBinaryKHR'
+--     handles
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Extensions.Handles.PipelineBinaryKHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'createPipelineBinariesKHR'
+data PipelineBinaryHandlesInfoKHR = PipelineBinaryHandlesInfoKHR
+  { -- | @pipelineBinaryCount@ is the number of binaries associated with this
+    -- pipeline or the number of entries in the @pPipelineBinaries@ array.
+    pipelineBinaryCount :: Word32
+  , -- | @pPipelineBinaries@ is @NULL@ or a pointer to an array of
+    -- 'Vulkan.Extensions.Handles.PipelineBinaryKHR' handles in which the
+    -- resulting pipeline binaries are returned.
+    pipelineBinaries :: Ptr PipelineBinaryKHR
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineBinaryHandlesInfoKHR)
+#endif
+deriving instance Show PipelineBinaryHandlesInfoKHR
+
+instance ToCStruct PipelineBinaryHandlesInfoKHR where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineBinaryHandlesInfoKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (pipelineBinaryCount)
+    poke ((p `plusPtr` 24 :: Ptr (Ptr PipelineBinaryKHR))) (pipelineBinaries)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct PipelineBinaryHandlesInfoKHR where
+  peekCStruct p = do
+    pipelineBinaryCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pPipelineBinaries <- peek @(Ptr PipelineBinaryKHR) ((p `plusPtr` 24 :: Ptr (Ptr PipelineBinaryKHR)))
+    pure $ PipelineBinaryHandlesInfoKHR
+             pipelineBinaryCount pPipelineBinaries
+
+instance Storable PipelineBinaryHandlesInfoKHR where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PipelineBinaryHandlesInfoKHR where
+  zero = PipelineBinaryHandlesInfoKHR
+           zero
+           zero
+
+
+-- | VkPipelineBinaryDataKHR - Structure specifying data and length of a
+-- pipeline binary
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'PipelineBinaryKeysAndDataKHR'
+data PipelineBinaryDataKHR = PipelineBinaryDataKHR
+  { -- | @dataSize@ is the size of the @pData@ buffer in bytes.
+    --
+    -- #VUID-VkPipelineBinaryDataKHR-dataSize-arraylength# @dataSize@ /must/ be
+    -- greater than @0@
+    dataSize :: Word64
+  , -- | @pData@ is a pointer to a buffer of @size@ bytes that contains pipeline
+    -- binary data obtained from 'getPipelineBinaryDataKHR'.
+    --
+    -- #VUID-VkPipelineBinaryDataKHR-pData-parameter# @pData@ /must/ be a valid
+    -- pointer to an array of @dataSize@ bytes
+    data' :: Ptr ()
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineBinaryDataKHR)
+#endif
+deriving instance Show PipelineBinaryDataKHR
+
+instance ToCStruct PipelineBinaryDataKHR where
+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineBinaryDataKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr CSize)) (CSize (dataSize))
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (data')
+    f
+  cStructSize = 16
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr CSize)) (CSize (zero))
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (zero)
+    f
+
+instance FromCStruct PipelineBinaryDataKHR where
+  peekCStruct p = do
+    dataSize <- peek @CSize ((p `plusPtr` 0 :: Ptr CSize))
+    pData <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    pure $ PipelineBinaryDataKHR
+             (coerce @CSize @Word64 dataSize) pData
+
+instance Storable PipelineBinaryDataKHR where
+  sizeOf ~_ = 16
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PipelineBinaryDataKHR where
+  zero = PipelineBinaryDataKHR
+           zero
+           zero
+
+
+-- | VkPipelineBinaryKeysAndDataKHR - Structure specifying arrays of key and
+-- data pairs
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'PipelineBinaryCreateInfoKHR', 'PipelineBinaryDataKHR',
+-- 'PipelineBinaryKeyKHR'
+data PipelineBinaryKeysAndDataKHR = PipelineBinaryKeysAndDataKHR
+  { -- | @pPipelineBinaryKeys@ is a pointer to an array of 'PipelineBinaryKeyKHR'
+    -- structures containing the pipeline binary keys
+    --
+    -- #VUID-VkPipelineBinaryKeysAndDataKHR-pPipelineBinaryKeys-parameter#
+    -- @pPipelineBinaryKeys@ /must/ be a valid pointer to an array of
+    -- @binaryCount@ valid 'PipelineBinaryKeyKHR' structures
+    pipelineBinaryKeys :: Vector PipelineBinaryKeyKHR
+  , -- | @pPipelineBinaryData@ is a pointer to an array of
+    -- 'PipelineBinaryDataKHR' structures containing the pipeline binary data
+    --
+    -- #VUID-VkPipelineBinaryKeysAndDataKHR-pPipelineBinaryData-parameter#
+    -- @pPipelineBinaryData@ /must/ be a valid pointer to an array of
+    -- @binaryCount@ valid 'PipelineBinaryDataKHR' structures
+    pipelineBinaryData :: Vector PipelineBinaryDataKHR
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineBinaryKeysAndDataKHR)
+#endif
+deriving instance Show PipelineBinaryKeysAndDataKHR
+
+instance ToCStruct PipelineBinaryKeysAndDataKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineBinaryKeysAndDataKHR{..} f = evalContT $ do
+    let pPipelineBinaryKeysLength = Data.Vector.length $ (pipelineBinaryKeys)
+    lift $ unless ((Data.Vector.length $ (pipelineBinaryData)) == pPipelineBinaryKeysLength) $
+      throwIO $ IOError Nothing InvalidArgument "" "pPipelineBinaryData and pPipelineBinaryKeys must have the same length" Nothing Nothing
+    lift $ poke ((p `plusPtr` 0 :: Ptr Word32)) ((fromIntegral pPipelineBinaryKeysLength :: Word32))
+    pPPipelineBinaryKeys' <- ContT $ allocaBytes @PipelineBinaryKeyKHR ((Data.Vector.length (pipelineBinaryKeys)) * 56)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPPipelineBinaryKeys' `plusPtr` (56 * (i)) :: Ptr PipelineBinaryKeyKHR) (e)) (pipelineBinaryKeys)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr PipelineBinaryKeyKHR))) (pPPipelineBinaryKeys')
+    pPPipelineBinaryData' <- ContT $ allocaBytes @PipelineBinaryDataKHR ((Data.Vector.length (pipelineBinaryData)) * 16)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPPipelineBinaryData' `plusPtr` (16 * (i)) :: Ptr PipelineBinaryDataKHR) (e)) (pipelineBinaryData)
+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr PipelineBinaryDataKHR))) (pPPipelineBinaryData')
+    lift $ f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct _ f = f
+
+instance FromCStruct PipelineBinaryKeysAndDataKHR where
+  peekCStruct p = do
+    binaryCount <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
+    pPipelineBinaryKeys <- peek @(Ptr PipelineBinaryKeyKHR) ((p `plusPtr` 8 :: Ptr (Ptr PipelineBinaryKeyKHR)))
+    pPipelineBinaryKeys' <- generateM (fromIntegral binaryCount) (\i -> peekCStruct @PipelineBinaryKeyKHR ((pPipelineBinaryKeys `advancePtrBytes` (56 * (i)) :: Ptr PipelineBinaryKeyKHR)))
+    pPipelineBinaryData <- peek @(Ptr PipelineBinaryDataKHR) ((p `plusPtr` 16 :: Ptr (Ptr PipelineBinaryDataKHR)))
+    pPipelineBinaryData' <- generateM (fromIntegral binaryCount) (\i -> peekCStruct @PipelineBinaryDataKHR ((pPipelineBinaryData `advancePtrBytes` (16 * (i)) :: Ptr PipelineBinaryDataKHR)))
+    pure $ PipelineBinaryKeysAndDataKHR
+             pPipelineBinaryKeys' pPipelineBinaryData'
+
+instance Zero PipelineBinaryKeysAndDataKHR where
+  zero = PipelineBinaryKeysAndDataKHR
+           mempty
+           mempty
+
+
+-- | VkPipelineBinaryKeyKHR - Structure specifying a key to a pipeline binary
+--
+-- = Description
+--
+-- Any returned values beyond the first @keySize@ bytes are undefined.
+-- Implementations /must/ return a @keySize@ greater than 0, and
+-- less-or-equal to
+-- 'Vulkan.Core10.APIConstants.MAX_PIPELINE_BINARY_KEY_SIZE_KHR'.
+--
+-- Two keys are considered equal if @keySize@ is equal and the first
+-- @keySize@ bytes of @key@ compare equal.
+--
+-- Implementations /may/ return a different @keySize@ for different
+-- binaries.
+--
+-- Implementations /should/ ensure that @keySize@ is large enough to
+-- uniquely identify a pipeline binary.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'PipelineBinaryKeysAndDataKHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'getPipelineBinaryDataKHR', 'getPipelineKeyKHR'
+data PipelineBinaryKeyKHR = PipelineBinaryKeyKHR
+  { -- | @keySize@ is the size, in bytes, of valid data returned in @key@.
+    keySize :: Word32
+  , -- | @key@ is a buffer of opaque data specifying a pipeline binary key.
+    key :: ByteString
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineBinaryKeyKHR)
+#endif
+deriving instance Show PipelineBinaryKeyKHR
+
+instance ToCStruct PipelineBinaryKeyKHR where
+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineBinaryKeyKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (keySize)
+    pokeFixedLengthByteString ((p `plusPtr` 20 :: Ptr (FixedArray MAX_PIPELINE_BINARY_KEY_SIZE_KHR Word8))) (key)
+    f
+  cStructSize = 56
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    pokeFixedLengthByteString ((p `plusPtr` 20 :: Ptr (FixedArray MAX_PIPELINE_BINARY_KEY_SIZE_KHR Word8))) (mempty)
+    f
+
+instance FromCStruct PipelineBinaryKeyKHR where
+  peekCStruct p = do
+    keySize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    key <- peekByteStringFromSizedVectorPtr ((p `plusPtr` 20 :: Ptr (FixedArray MAX_PIPELINE_BINARY_KEY_SIZE_KHR Word8)))
+    pure $ PipelineBinaryKeyKHR
+             keySize key
+
+instance Storable PipelineBinaryKeyKHR where
+  sizeOf ~_ = 56
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PipelineBinaryKeyKHR where
+  zero = PipelineBinaryKeyKHR
+           zero
+           mempty
+
+
+-- | VkPipelineBinaryInfoKHR - Structure specifying pipeline binaries to use
+-- during pipeline creation
+--
+-- = Description
+--
+-- If a 'PipelineBinaryInfoKHR' structure with a @binaryCount@ greater than
+-- 0 is included in the @pNext@ chain of any @Vk*PipelineCreateInfo@
+-- structure when creating a pipeline, implementations /must/ use the data
+-- in @pPipelineBinaries@ instead of recalculating it. Any shader module
+-- identifiers or shader modules declared in
+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' instances are
+-- ignored.
+--
+-- If this structure is not included in the @pNext@ chain, it is equivalent
+-- to specifying this structure with a @binaryCount@ of @0@.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineBinaryInfoKHR-binaryCount-09603# @binaryCount@ and
+--     the order of the elements in @pPipelineBinaries@ /must/ exactly
+--     match that returned by 'createPipelineBinariesKHR' for the matching
+--     @Vk*PipelineCreateInfo@ structure and its @pNext@ chain, ignoring
+--     the presence of the 'PipelineBinaryInfoKHR' structure, the presence
+--     of the
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+--     flag, and absence of any shader module identifiers or shader
+--     modules, for the same
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#global-pipeline-key global pipeline key>,
+--     from either:
+--
+--     -   'PipelineBinaryCreateInfoKHR'::@pPipelineCreateInfo@, or
+--
+--     -   'PipelineBinaryCreateInfoKHR'::@pipeline@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineBinaryInfoKHR-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR'
+--
+-- -   #VUID-VkPipelineBinaryInfoKHR-pPipelineBinaries-parameter# If
+--     @binaryCount@ is not @0@, @pPipelineBinaries@ /must/ be a valid
+--     pointer to an array of @binaryCount@ valid
+--     'Vulkan.Extensions.Handles.PipelineBinaryKHR' handles
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Extensions.Handles.PipelineBinaryKHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PipelineBinaryInfoKHR = PipelineBinaryInfoKHR
+  { -- | @pPipelineBinaries@ is a pointer to an array of
+    -- 'Vulkan.Extensions.Handles.PipelineBinaryKHR' handles.
+    pipelineBinaries :: Vector PipelineBinaryKHR }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineBinaryInfoKHR)
+#endif
+deriving instance Show PipelineBinaryInfoKHR
+
+instance ToCStruct PipelineBinaryInfoKHR where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineBinaryInfoKHR{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (pipelineBinaries)) :: Word32))
+    pPPipelineBinaries' <- ContT $ allocaBytes @PipelineBinaryKHR ((Data.Vector.length (pipelineBinaries)) * 8)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPPipelineBinaries' `plusPtr` (8 * (i)) :: Ptr PipelineBinaryKHR) (e)) (pipelineBinaries)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr PipelineBinaryKHR))) (pPPipelineBinaries')
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct PipelineBinaryInfoKHR where
+  peekCStruct p = do
+    binaryCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pPipelineBinaries <- peek @(Ptr PipelineBinaryKHR) ((p `plusPtr` 24 :: Ptr (Ptr PipelineBinaryKHR)))
+    pPipelineBinaries' <- generateM (fromIntegral binaryCount) (\i -> peek @PipelineBinaryKHR ((pPipelineBinaries `advancePtrBytes` (8 * (i)) :: Ptr PipelineBinaryKHR)))
+    pure $ PipelineBinaryInfoKHR
+             pPipelineBinaries'
+
+instance Zero PipelineBinaryInfoKHR where
+  zero = PipelineBinaryInfoKHR
+           mempty
+
+
+-- | VkReleaseCapturedPipelineDataInfoKHR - Structure specifying a pipeline
+-- whose captured data is to be released
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Core10.Handles.Pipeline',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'releaseCapturedPipelineDataKHR'
+data ReleaseCapturedPipelineDataInfoKHR = ReleaseCapturedPipelineDataInfoKHR
+  { -- | @pipeline@ the handle of the pipeline object to release the data from.
+    --
+    -- #VUID-VkReleaseCapturedPipelineDataInfoKHR-pipeline-09613# @pipeline@
+    -- /must/ have been created with
+    -- 'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+    --
+    -- #VUID-VkReleaseCapturedPipelineDataInfoKHR-pipeline-09618# @pipeline@
+    -- /must/ not have been used in a previous call to
+    -- 'releaseCapturedPipelineDataKHR'
+    --
+    -- #VUID-VkReleaseCapturedPipelineDataInfoKHR-pipeline-parameter#
+    -- @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle
+    pipeline :: Pipeline }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ReleaseCapturedPipelineDataInfoKHR)
+#endif
+deriving instance Show ReleaseCapturedPipelineDataInfoKHR
+
+instance ToCStruct ReleaseCapturedPipelineDataInfoKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ReleaseCapturedPipelineDataInfoKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Pipeline)) (pipeline)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Pipeline)) (zero)
+    f
+
+instance FromCStruct ReleaseCapturedPipelineDataInfoKHR where
+  peekCStruct p = do
+    pipeline <- peek @Pipeline ((p `plusPtr` 16 :: Ptr Pipeline))
+    pure $ ReleaseCapturedPipelineDataInfoKHR
+             pipeline
+
+instance Storable ReleaseCapturedPipelineDataInfoKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ReleaseCapturedPipelineDataInfoKHR where
+  zero = ReleaseCapturedPipelineDataInfoKHR
+           zero
+
+
+-- | VkPipelineBinaryDataInfoKHR - Structure specifying a pipeline binary to
+-- retrieve binary data from
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Extensions.Handles.PipelineBinaryKHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'getPipelineBinaryDataKHR'
+data PipelineBinaryDataInfoKHR = PipelineBinaryDataInfoKHR
+  { -- | @pipelineBinary@ is the pipeline binary to get data from.
+    --
+    -- #VUID-VkPipelineBinaryDataInfoKHR-pipelineBinary-parameter#
+    -- @pipelineBinary@ /must/ be a valid
+    -- 'Vulkan.Extensions.Handles.PipelineBinaryKHR' handle
+    pipelineBinary :: PipelineBinaryKHR }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineBinaryDataInfoKHR)
+#endif
+deriving instance Show PipelineBinaryDataInfoKHR
+
+instance ToCStruct PipelineBinaryDataInfoKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineBinaryDataInfoKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineBinaryKHR)) (pipelineBinary)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineBinaryKHR)) (zero)
+    f
+
+instance FromCStruct PipelineBinaryDataInfoKHR where
+  peekCStruct p = do
+    pipelineBinary <- peek @PipelineBinaryKHR ((p `plusPtr` 16 :: Ptr PipelineBinaryKHR))
+    pure $ PipelineBinaryDataInfoKHR
+             pipelineBinary
+
+instance Storable PipelineBinaryDataInfoKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PipelineBinaryDataInfoKHR where
+  zero = PipelineBinaryDataInfoKHR
+           zero
+
+
+-- | VkPipelineCreateInfoKHR - Structure specifying a pipeline createinfo
+-- chain
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'PipelineBinaryCreateInfoKHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'getPipelineKeyKHR'
+data PipelineCreateInfoKHR = PipelineCreateInfoKHR
+  {}
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineCreateInfoKHR)
+#endif
+deriving instance Show PipelineCreateInfoKHR
+
+instance ToCStruct PipelineCreateInfoKHR where
+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineCreateInfoKHR f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+  cStructSize = 16
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct PipelineCreateInfoKHR where
+  peekCStruct _ = pure $ PipelineCreateInfoKHR
+                           
+
+instance Storable PipelineCreateInfoKHR where
+  sizeOf ~_ = 16
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PipelineCreateInfoKHR where
+  zero = PipelineCreateInfoKHR
+           
+
+
+-- | VkPhysicalDevicePipelineBinaryFeaturesKHR - Structure describing support
+-- for pipeline binaries
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDevicePipelineBinaryFeaturesKHR' 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. 'PhysicalDevicePipelineBinaryFeaturesKHR' /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_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDevicePipelineBinaryFeaturesKHR = PhysicalDevicePipelineBinaryFeaturesKHR
+  { -- | #features-pipelineBinaries# @pipelineBinaries@ indicates that the
+    -- implementation supports
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-binaries>.
+    pipelineBinaries :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDevicePipelineBinaryFeaturesKHR)
+#endif
+deriving instance Show PhysicalDevicePipelineBinaryFeaturesKHR
+
+instance ToCStruct PhysicalDevicePipelineBinaryFeaturesKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDevicePipelineBinaryFeaturesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (pipelineBinaries))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDevicePipelineBinaryFeaturesKHR where
+  peekCStruct p = do
+    pipelineBinaries <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDevicePipelineBinaryFeaturesKHR
+             (bool32ToBool pipelineBinaries)
+
+instance Storable PhysicalDevicePipelineBinaryFeaturesKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDevicePipelineBinaryFeaturesKHR where
+  zero = PhysicalDevicePipelineBinaryFeaturesKHR
+           zero
+
+
+-- | VkDevicePipelineBinaryInternalCacheControlKHR - Structure specifying
+-- parameter to disable the internal pipeline cache
+--
+-- = Description
+--
+-- If the 'Vulkan.Core10.Device.DeviceCreateInfo'::@pNext@ chain does not
+-- include this structure, then @disableInternalCache@ defaults to
+-- 'Vulkan.Core10.FundamentalTypes.FALSE'.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkDevicePipelineBinaryInternalCacheControlKHR-disableInternalCache-09602#
+--     If
+--     'PhysicalDevicePipelineBinaryPropertiesKHR'::@pipelineBinaryInternalCacheControl@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', @disableInternalCache@
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkDevicePipelineBinaryInternalCacheControlKHR-sType-sType#
+--     @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data DevicePipelineBinaryInternalCacheControlKHR = DevicePipelineBinaryInternalCacheControlKHR
+  { -- | @disableInternalCache@ specifies whether or not to disable the
+    -- implementation’s internal pipeline cache.
+    disableInternalCache :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (DevicePipelineBinaryInternalCacheControlKHR)
+#endif
+deriving instance Show DevicePipelineBinaryInternalCacheControlKHR
+
+instance ToCStruct DevicePipelineBinaryInternalCacheControlKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p DevicePipelineBinaryInternalCacheControlKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (disableInternalCache))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct DevicePipelineBinaryInternalCacheControlKHR where
+  peekCStruct p = do
+    disableInternalCache <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ DevicePipelineBinaryInternalCacheControlKHR
+             (bool32ToBool disableInternalCache)
+
+instance Storable DevicePipelineBinaryInternalCacheControlKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero DevicePipelineBinaryInternalCacheControlKHR where
+  zero = DevicePipelineBinaryInternalCacheControlKHR
+           zero
+
+
+-- | VkPhysicalDevicePipelineBinaryPropertiesKHR - Structure describing
+-- properties about the pipeline binary implementation
+--
+-- = Description
+--
+-- These properties tend to be platform specific and may change depending
+-- on external configuration which is outside the scope of this
+-- specification. These properties are intended to guide applications when
+-- implementations have dedicated caching solutions available. In
+-- particular, if the @pipelineBinaryPrefersInternalCache@ limit is
+-- exposed, relying on the internal cache may provide some advantage
+-- compared to an application-specific solution. An application with its
+-- own dedicated solution may still use its own caching system even with
+-- this limit exposed.
+--
+-- If the 'PhysicalDevicePipelineBinaryPropertiesKHR' 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_pipeline_binary VK_KHR_pipeline_binary>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDevicePipelineBinaryPropertiesKHR = PhysicalDevicePipelineBinaryPropertiesKHR
+  { -- | #limits-pipelineBinaryInternalCache# @pipelineBinaryInternalCache@
+    -- specifies that the implementation maintains a pipeline cache internal to
+    -- the implementation. If this is 'Vulkan.Core10.FundamentalTypes.TRUE',
+    -- applications /can/ create pipeline binaries with only a pipeline create
+    -- info, and in this case, an implementation /may/ be able to create a
+    -- pipeline binary directly without application needing to capture the
+    -- binary itself.
+    pipelineBinaryInternalCache :: Bool
+  , -- | #limits-pipelineBinaryInternalCacheControl#
+    -- @pipelineBinaryInternalCacheControl@ specifies whether the driver’s
+    -- internal cache /can/ be disabled. If this property is
+    -- 'Vulkan.Core10.FundamentalTypes.TRUE'
+    -- 'DevicePipelineBinaryInternalCacheControlKHR'::@disableInternalCache@
+    -- /can/ be used to disable the driver’s internal cache, allowing an
+    -- application to take full control of both memory and disk usage.
+    pipelineBinaryInternalCacheControl :: Bool
+  , -- | #limits-pipelineBinaryPrefersInternalCache#
+    -- @pipelineBinaryPrefersInternalCache@ specifies that the implementation
+    -- prefers to maintain an internal cache, and applications /should/ not
+    -- store pipeline binaries in their own on-disk caches to avoid increased
+    -- on-disk storage requirements. Applications are encouraged to only store
+    -- pipeline keys instead, and aim to create pipeline binaries from key
+    -- alone on subsequent runs of the application.
+    pipelineBinaryPrefersInternalCache :: Bool
+  , -- | #limits-pipelineBinaryPrecompiledInternalCache#
+    -- @pipelineBinaryPrecompiledInternalCache@ specifies that the
+    -- implementation /may/ have pipeline binaries in its internal cache, which
+    -- is populated without the application ever having generated that pipeline
+    -- itself. Applications /can/ attempt to create binaries without extracting
+    -- pipeline binary data from the pipeline prior for a set of pipeline keys,
+    -- including from previous runs of the application.
+    pipelineBinaryPrecompiledInternalCache :: Bool
+  , -- | #limits-pipelineBinaryCompressedData# @pipelineBinaryCompressedData@
+    -- specifies that the binary data is already compressed and so applications
+    -- /should/ not attempt to compress it.
+    pipelineBinaryCompressedData :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDevicePipelineBinaryPropertiesKHR)
+#endif
+deriving instance Show PhysicalDevicePipelineBinaryPropertiesKHR
+
+instance ToCStruct PhysicalDevicePipelineBinaryPropertiesKHR where
+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDevicePipelineBinaryPropertiesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (pipelineBinaryInternalCache))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (pipelineBinaryInternalCacheControl))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (pipelineBinaryPrefersInternalCache))
+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (pipelineBinaryPrecompiledInternalCache))
+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (pipelineBinaryCompressedData))
+    f
+  cStructSize = 40
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_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))
+    f
+
+instance FromCStruct PhysicalDevicePipelineBinaryPropertiesKHR where
+  peekCStruct p = do
+    pipelineBinaryInternalCache <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pipelineBinaryInternalCacheControl <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pipelineBinaryPrefersInternalCache <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    pipelineBinaryPrecompiledInternalCache <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))
+    pipelineBinaryCompressedData <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))
+    pure $ PhysicalDevicePipelineBinaryPropertiesKHR
+             (bool32ToBool pipelineBinaryInternalCache)
+             (bool32ToBool pipelineBinaryInternalCacheControl)
+             (bool32ToBool pipelineBinaryPrefersInternalCache)
+             (bool32ToBool pipelineBinaryPrecompiledInternalCache)
+             (bool32ToBool pipelineBinaryCompressedData)
+
+instance Storable PhysicalDevicePipelineBinaryPropertiesKHR where
+  sizeOf ~_ = 40
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDevicePipelineBinaryPropertiesKHR where
+  zero = PhysicalDevicePipelineBinaryPropertiesKHR
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+type KHR_PIPELINE_BINARY_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_KHR_PIPELINE_BINARY_SPEC_VERSION"
+pattern KHR_PIPELINE_BINARY_SPEC_VERSION :: forall a . Integral a => a
+pattern KHR_PIPELINE_BINARY_SPEC_VERSION = 1
+
+
+type KHR_PIPELINE_BINARY_EXTENSION_NAME = "VK_KHR_pipeline_binary"
+
+-- No documentation found for TopLevel "VK_KHR_PIPELINE_BINARY_EXTENSION_NAME"
+pattern KHR_PIPELINE_BINARY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern KHR_PIPELINE_BINARY_EXTENSION_NAME = "VK_KHR_pipeline_binary"
+
diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_binary.hs-boot b/src/Vulkan/Extensions/VK_KHR_pipeline_binary.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_pipeline_binary.hs-boot
@@ -0,0 +1,310 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_pipeline_binary - device extension
+--
+-- = VK_KHR_pipeline_binary
+--
+-- [__Name String__]
+--     @VK_KHR_pipeline_binary@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     484
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
+--
+-- [__Contact__]
+--
+--     -   Stu Smith
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_pipeline_binary] @stu-s%0A*Here describe the issue or question you have about the VK_KHR_pipeline_binary extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_pipeline_binary.adoc VK_KHR_pipeline_binary>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-07-01
+--
+-- [__Contributors__]
+--
+--     -   Stu Smith, AMD
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Alan Harrison, AMD
+--
+--     -   Maciej Jesionowski, AMD
+--
+--     -   Younggwan Kim, Arm
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   Ting Wei, Arm
+--
+--     -   Chris Glover, Google
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Jakub Kuderski, Google
+--
+--     -   Piotr Byszewski, Mobica
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Ralph Potter, Samsung
+--
+--     -   Matthew Netsch, Qualcomm
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Samuel Pitoiset, Valve
+--
+--     -   Tatsuyuki Ishi, Valve
+--
+-- == Description
+--
+-- This extension provides a method to obtain binary data associated with
+-- individual pipelines such that applications can manage caching
+-- themselves instead of using VkPipelineCache objects.
+--
+-- == New Object Types
+--
+-- -   'Vulkan.Extensions.Handles.PipelineBinaryKHR'
+--
+-- == New Commands
+--
+-- -   'createPipelineBinariesKHR'
+--
+-- -   'destroyPipelineBinaryKHR'
+--
+-- -   'getPipelineBinaryDataKHR'
+--
+-- -   'getPipelineKeyKHR'
+--
+-- -   'releaseCapturedPipelineDataKHR'
+--
+-- == New Structures
+--
+-- -   'PipelineBinaryCreateInfoKHR'
+--
+-- -   'PipelineBinaryDataInfoKHR'
+--
+-- -   'PipelineBinaryDataKHR'
+--
+-- -   'PipelineBinaryHandlesInfoKHR'
+--
+-- -   'PipelineBinaryKeyKHR'
+--
+-- -   'PipelineBinaryKeysAndDataKHR'
+--
+-- -   'PipelineCreateInfoKHR'
+--
+-- -   'ReleaseCapturedPipelineDataInfoKHR'
+--
+-- -   Extending 'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'DevicePipelineBinaryInternalCacheControlKHR'
+--
+-- -   Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
+--     'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',
+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR':
+--
+--     -   'PipelineBinaryInfoKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDevicePipelineBinaryFeaturesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDevicePipelineBinaryPropertiesKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_PIPELINE_BINARY_EXTENSION_NAME'
+--
+-- -   'KHR_PIPELINE_BINARY_SPEC_VERSION'
+--
+-- -   'Vulkan.Core10.APIConstants.MAX_PIPELINE_BINARY_KEY_SIZE_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':
+--
+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_PIPELINE_BINARY_KHR'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.Result.Result':
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_NOT_ENOUGH_SPACE_KHR'
+--
+--     -   'Vulkan.Core10.Enums.Result.PIPELINE_BINARY_MISSING_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR'
+--
+-- == Version History
+--
+-- -   Revision 1, 2021-12-10 (Chris Glover)
+--
+--     -   Initial draft.
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_binary 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_pipeline_binary  ( DevicePipelineBinaryInternalCacheControlKHR
+                                                 , PhysicalDevicePipelineBinaryFeaturesKHR
+                                                 , PhysicalDevicePipelineBinaryPropertiesKHR
+                                                 , PipelineBinaryCreateInfoKHR
+                                                 , PipelineBinaryDataInfoKHR
+                                                 , PipelineBinaryDataKHR
+                                                 , PipelineBinaryHandlesInfoKHR
+                                                 , PipelineBinaryInfoKHR
+                                                 , PipelineBinaryKeyKHR
+                                                 , PipelineBinaryKeysAndDataKHR
+                                                 , PipelineCreateInfoKHR
+                                                 , ReleaseCapturedPipelineDataInfoKHR
+                                                 ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data DevicePipelineBinaryInternalCacheControlKHR
+
+instance ToCStruct DevicePipelineBinaryInternalCacheControlKHR
+instance Show DevicePipelineBinaryInternalCacheControlKHR
+
+instance FromCStruct DevicePipelineBinaryInternalCacheControlKHR
+
+
+data PhysicalDevicePipelineBinaryFeaturesKHR
+
+instance ToCStruct PhysicalDevicePipelineBinaryFeaturesKHR
+instance Show PhysicalDevicePipelineBinaryFeaturesKHR
+
+instance FromCStruct PhysicalDevicePipelineBinaryFeaturesKHR
+
+
+data PhysicalDevicePipelineBinaryPropertiesKHR
+
+instance ToCStruct PhysicalDevicePipelineBinaryPropertiesKHR
+instance Show PhysicalDevicePipelineBinaryPropertiesKHR
+
+instance FromCStruct PhysicalDevicePipelineBinaryPropertiesKHR
+
+
+data PipelineBinaryCreateInfoKHR
+
+instance ToCStruct PipelineBinaryCreateInfoKHR
+instance Show PipelineBinaryCreateInfoKHR
+
+instance FromCStruct PipelineBinaryCreateInfoKHR
+
+
+data PipelineBinaryDataInfoKHR
+
+instance ToCStruct PipelineBinaryDataInfoKHR
+instance Show PipelineBinaryDataInfoKHR
+
+instance FromCStruct PipelineBinaryDataInfoKHR
+
+
+data PipelineBinaryDataKHR
+
+instance ToCStruct PipelineBinaryDataKHR
+instance Show PipelineBinaryDataKHR
+
+instance FromCStruct PipelineBinaryDataKHR
+
+
+data PipelineBinaryHandlesInfoKHR
+
+instance ToCStruct PipelineBinaryHandlesInfoKHR
+instance Show PipelineBinaryHandlesInfoKHR
+
+instance FromCStruct PipelineBinaryHandlesInfoKHR
+
+
+data PipelineBinaryInfoKHR
+
+instance ToCStruct PipelineBinaryInfoKHR
+instance Show PipelineBinaryInfoKHR
+
+instance FromCStruct PipelineBinaryInfoKHR
+
+
+data PipelineBinaryKeyKHR
+
+instance ToCStruct PipelineBinaryKeyKHR
+instance Show PipelineBinaryKeyKHR
+
+instance FromCStruct PipelineBinaryKeyKHR
+
+
+data PipelineBinaryKeysAndDataKHR
+
+instance ToCStruct PipelineBinaryKeysAndDataKHR
+instance Show PipelineBinaryKeysAndDataKHR
+
+instance FromCStruct PipelineBinaryKeysAndDataKHR
+
+
+data PipelineCreateInfoKHR
+
+instance ToCStruct PipelineCreateInfoKHR
+instance Show PipelineCreateInfoKHR
+
+instance FromCStruct PipelineCreateInfoKHR
+
+
+data ReleaseCapturedPipelineDataInfoKHR
+
+instance ToCStruct ReleaseCapturedPipelineDataInfoKHR
+instance Show ReleaseCapturedPipelineDataInfoKHR
+
+instance FromCStruct ReleaseCapturedPipelineDataInfoKHR
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_pipeline_executable_properties - device extension
 --
--- == VK_KHR_pipeline_executable_properties
+-- = VK_KHR_pipeline_executable_properties
 --
 -- [__Name String__]
 --     @VK_KHR_pipeline_executable_properties@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -159,15 +161,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',
--- 'PipelineExecutableInfoKHR',
--- 'PipelineExecutableInternalRepresentationKHR',
--- 'PipelineExecutablePropertiesKHR',
--- 'PipelineExecutableStatisticFormatKHR',
--- 'PipelineExecutableStatisticKHR', 'PipelineExecutableStatisticValueKHR',
--- 'PipelineInfoKHR', 'getPipelineExecutableInternalRepresentationsKHR',
--- 'getPipelineExecutablePropertiesKHR',
--- 'getPipelineExecutableStatisticsKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -299,11 +293,11 @@
 --
 -- If @pProperties@ is @NULL@, then the number of pipeline executables
 -- associated with the pipeline is returned in @pExecutableCount@.
--- Otherwise, @pExecutableCount@ /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 @pExecutableCount@ is less than the number of
--- pipeline executables associated with the pipeline, at most
+-- Otherwise, @pExecutableCount@ /must/ point to a variable set by the
+-- application 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 @pExecutableCount@ is less than
+-- the number of pipeline executables associated with the pipeline, at most
 -- @pExecutableCount@ 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
@@ -406,11 +400,11 @@
 --
 -- If @pStatistics@ is @NULL@, then the number of statistics associated
 -- with the pipeline executable is returned in @pStatisticCount@.
--- Otherwise, @pStatisticCount@ /must/ point to a variable set by the user
--- to the number of elements in the @pStatistics@ array, and on return the
--- variable is overwritten with the number of structures actually written
--- to @pStatistics@. If @pStatisticCount@ is less than the number of
--- statistics associated with the pipeline executable, at most
+-- Otherwise, @pStatisticCount@ /must/ point to a variable set by the
+-- application to the number of elements in the @pStatistics@ array, and on
+-- return the variable is overwritten with the number of structures
+-- actually written to @pStatistics@. If @pStatisticCount@ is less than the
+-- number of statistics associated with the pipeline executable, at most
 -- @pStatisticCount@ 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
@@ -520,9 +514,9 @@
 -- representations associated with the pipeline executable is returned in
 -- @pInternalRepresentationCount@. Otherwise,
 -- @pInternalRepresentationCount@ /must/ point to a variable set by the
--- user to the number of elements in the @pInternalRepresentations@ array,
--- and on return the variable is overwritten with the number of structures
--- actually written to @pInternalRepresentations@. If
+-- application to the number of elements in the @pInternalRepresentations@
+-- array, and on return the variable is overwritten with the number of
+-- structures actually written to @pInternalRepresentations@. If
 -- @pInternalRepresentationCount@ is less than the number of internal
 -- representations associated with the pipeline executable, at most
 -- @pInternalRepresentationCount@ structures will be written, and
@@ -993,7 +987,7 @@
 --
 -- If @pData@ is @NULL@, then the size, in bytes, of the internal
 -- representation data is returned in @dataSize@. Otherwise, @dataSize@
--- must be the size of the buffer, in bytes, pointed to by @pData@ and on
+-- /must/ be the size of the buffer, in bytes, pointed to by @pData@ and on
 -- return @dataSize@ is overwritten with the number of bytes of data
 -- actually written to @pData@ including any trailing null character. If
 -- @dataSize@ is less than the size, in bytes, of the internal
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_pipeline_executable_properties - device extension
 --
--- == VK_KHR_pipeline_executable_properties
+-- = VK_KHR_pipeline_executable_properties
 --
 -- [__Name String__]
 --     @VK_KHR_pipeline_executable_properties@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -159,15 +161,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',
--- 'PipelineExecutableInfoKHR',
--- 'PipelineExecutableInternalRepresentationKHR',
--- 'PipelineExecutablePropertiesKHR',
--- 'PipelineExecutableStatisticFormatKHR',
--- 'PipelineExecutableStatisticKHR', 'PipelineExecutableStatisticValueKHR',
--- 'PipelineInfoKHR', 'getPipelineExecutableInternalRepresentationsKHR',
--- 'getPipelineExecutablePropertiesKHR',
--- 'getPipelineExecutableStatisticsKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_pipeline_library - device extension
 --
--- == VK_KHR_pipeline_library
+-- = VK_KHR_pipeline_library
 --
 -- [__Name String__]
 --     @VK_KHR_pipeline_library@
@@ -77,7 +77,7 @@
 --
 -- == See Also
 --
--- 'PipelineLibraryCreateInfoKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_pipeline_library - device extension
 --
--- == VK_KHR_pipeline_library
+-- = VK_KHR_pipeline_library
 --
 -- [__Name String__]
 --     @VK_KHR_pipeline_library@
@@ -77,7 +77,7 @@
 --
 -- == See Also
 --
--- 'PipelineLibraryCreateInfoKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_portability_enumeration - instance extension
 --
--- == VK_KHR_portability_enumeration
+-- = VK_KHR_portability_enumeration
 --
 -- [__Name String__]
 --     @VK_KHR_portability_enumeration@
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_portability_subset - device extension
 --
--- == VK_KHR_portability_subset
+-- = VK_KHR_portability_subset
 --
 -- [__Name String__]
 --     @VK_KHR_portability_subset@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 --     -   __This is a /provisional/ extension and /must/ be used with
 --         caution. See the
@@ -70,7 +72,7 @@
 -- This extension provides Vulkan implementations with the ability to mark
 -- otherwise-required capabilities as unsupported, or to establish
 -- additional properties and limits that the application should adhere to
--- in order to guarantee portable behaviour and operation across platforms,
+-- in order to guarantee portable behavior and operation across platforms,
 -- including platforms where Vulkan is not natively supported.
 --
 -- The goal of this specification is to document, and make queryable,
@@ -130,8 +132,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePortabilitySubsetFeaturesKHR',
--- 'PhysicalDevicePortabilitySubsetPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -270,18 +271,18 @@
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation-isoline-tessellation isoline output>
     -- from the
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>
-    -- stage of a graphics pipeline. This member is only meaningful if
+    -- stage of a graphics pipeline. This member is only meaningful if the
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
-    -- are supported.
+    -- feature is supported.
     tessellationIsolines :: Bool
   , -- | #features-tessellationPointMode# @tessellationPointMode@ indicates
     -- whether this implementation supports
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation-point-mode point output>
     -- from the
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>
-    -- stage of a graphics pipeline. This member is only meaningful if
+    -- stage of a graphics pipeline. This member is only meaningful if the
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
-    -- are supported.
+    -- feature is supported.
     tessellationPointMode :: Bool
   , -- | #features-triangleFans# @triangleFans@ indicates whether this
     -- implementation supports
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_portability_subset - device extension
 --
--- == VK_KHR_portability_subset
+-- = VK_KHR_portability_subset
 --
 -- [__Name String__]
 --     @VK_KHR_portability_subset@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 --     -   __This is a /provisional/ extension and /must/ be used with
 --         caution. See the
@@ -70,7 +72,7 @@
 -- This extension provides Vulkan implementations with the ability to mark
 -- otherwise-required capabilities as unsupported, or to establish
 -- additional properties and limits that the application should adhere to
--- in order to guarantee portable behaviour and operation across platforms,
+-- in order to guarantee portable behavior and operation across platforms,
 -- including platforms where Vulkan is not natively supported.
 --
 -- The goal of this specification is to document, and make queryable,
@@ -130,8 +132,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePortabilitySubsetFeaturesKHR',
--- 'PhysicalDevicePortabilitySubsetPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_present_id - device extension
 --
--- == VK_KHR_present_id
+-- = VK_KHR_present_id
 --
 -- [__Name String__]
 --     @VK_KHR_present_id@
@@ -24,6 +24,8 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -89,7 +91,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePresentIdFeaturesKHR', 'PresentIdKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -228,7 +230,7 @@
 -- identifiers.
 --
 -- Each 'Vulkan.Extensions.Handles.SwapchainKHR' has a presentId associated
--- with it. This value is initially set to zero when the
+-- with it. This value is initially zero when the
 -- 'Vulkan.Extensions.Handles.SwapchainKHR' is created.
 --
 -- When a 'PresentIdKHR' structure with a non-NULL @pPresentIds@ is
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_present_id - device extension
 --
--- == VK_KHR_present_id
+-- = VK_KHR_present_id
 --
 -- [__Name String__]
 --     @VK_KHR_present_id@
@@ -24,6 +24,8 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -89,7 +91,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePresentIdFeaturesKHR', 'PresentIdKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_present_wait - device extension
 --
--- == VK_KHR_present_wait
+-- = VK_KHR_present_wait
 --
 -- [__Name String__]
 --     @VK_KHR_present_wait@
@@ -130,7 +130,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePresentWaitFeaturesKHR', 'waitForPresentKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_present_wait - device extension
 --
--- == VK_KHR_present_wait
+-- = VK_KHR_present_wait
 --
 -- [__Name String__]
 --     @VK_KHR_present_wait@
@@ -130,7 +130,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePresentWaitFeaturesKHR', 'waitForPresentKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_push_descriptor - device extension
 --
--- == VK_KHR_push_descriptor
+-- = VK_KHR_push_descriptor
 --
 -- [__Name String__]
 --     @VK_KHR_push_descriptor@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
@@ -60,16 +62,12 @@
 -- -   'cmdPushDescriptorSetKHR'
 --
 -- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+-- or
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_descriptor_update_template VK_KHR_descriptor_update_template>
 -- is supported:
 --
--- -   'cmdPushDescriptorSetWithTemplateKHR'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
--- is supported:
---
--- -   'cmdPushDescriptorSetWithTemplateKHR'
+-- -   'Vulkan.Extensions.VK_KHR_descriptor_update_template.cmdPushDescriptorSetWithTemplateKHR'
 --
 -- == New Structures
 --
@@ -94,6 +92,8 @@
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR'
 --
 -- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+-- or
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_descriptor_update_template VK_KHR_descriptor_update_template>
 -- is supported:
 --
@@ -102,15 +102,6 @@
 --
 --     -   'Vulkan.Core11.Enums.DescriptorUpdateTemplateType.DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR'
 --
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
--- is supported:
---
--- -   Extending
---     'Vulkan.Core11.Enums.DescriptorUpdateTemplateType.DescriptorUpdateTemplateType':
---
---     -   'Vulkan.Core11.Enums.DescriptorUpdateTemplateType.DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR'
---
 -- == Version History
 --
 -- -   Revision 1, 2016-10-15 (Jeff Bolz)
@@ -123,7 +114,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePushDescriptorPropertiesKHR', 'cmdPushDescriptorSetKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -133,12 +124,12 @@
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_KHR_push_descriptor  ( cmdPushDescriptorSetKHR
-                                                 , cmdPushDescriptorSetWithTemplateKHR
                                                  , PhysicalDevicePushDescriptorPropertiesKHR(..)
                                                  , KHR_PUSH_DESCRIPTOR_SPEC_VERSION
                                                  , pattern KHR_PUSH_DESCRIPTOR_SPEC_VERSION
                                                  , KHR_PUSH_DESCRIPTOR_EXTENSION_NAME
                                                  , pattern KHR_PUSH_DESCRIPTOR_EXTENSION_NAME
+                                                 , cmdPushDescriptorSetWithTemplateKHR
                                                  ) where
 
 import Vulkan.Internal.Utils (traceAroundEvent)
@@ -181,10 +172,7 @@
 import Vulkan.Core10.Handles (CommandBuffer(..))
 import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
 import Vulkan.Core10.Handles (CommandBuffer_T)
-import Vulkan.Core11.Handles (DescriptorUpdateTemplate)
-import Vulkan.Core11.Handles (DescriptorUpdateTemplate(..))
 import Vulkan.Dynamic (DeviceCmds(pVkCmdPushDescriptorSetKHR))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdPushDescriptorSetWithTemplateKHR))
 import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)
 import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint(..))
 import Vulkan.Core10.Handles (PipelineLayout)
@@ -193,6 +181,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core10.DescriptorSet (WriteDescriptorSet)
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR))
+import Vulkan.Extensions.VK_KHR_descriptor_update_template (cmdPushDescriptorSetWithTemplateKHR)
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
   unsafe
@@ -380,194 +369,6 @@
                                                          (set)
                                                          ((fromIntegral (Data.Vector.length $ (descriptorWrites)) :: Word32))
                                                          (forgetExtensions (pPDescriptorWrites)))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdPushDescriptorSetWithTemplateKHR
-  :: FunPtr (Ptr CommandBuffer_T -> DescriptorUpdateTemplate -> PipelineLayout -> Word32 -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> DescriptorUpdateTemplate -> PipelineLayout -> Word32 -> Ptr () -> IO ()
-
--- | vkCmdPushDescriptorSetWithTemplateKHR - Pushes descriptor updates into a
--- command buffer using a descriptor update template
---
--- == Valid Usage
---
--- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-00366# The
---     @pipelineBindPoint@ specified during the creation of the descriptor
---     update template /must/ be supported by the @commandBuffer@’s parent
---     'Vulkan.Core10.Handles.CommandPool'’s queue family
---
--- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-pData-01686# @pData@
---     /must/ be a valid pointer to a memory containing one or more valid
---     instances of 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo',
---     'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo', or
---     'Vulkan.Core10.Handles.BufferView' in a layout defined by
---     @descriptorUpdateTemplate@ when it was created with
---     'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.createDescriptorUpdateTemplate'
---
--- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-07993# @layout@
---     /must/ be compatible with the layout used to create
---     @descriptorUpdateTemplate@
---
--- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-07994#
---     @descriptorUpdateTemplate@ /must/ have been created with a
---     @templateType@ of
---     'Vulkan.Core11.Enums.DescriptorUpdateTemplateType.DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR'
---
--- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07995# @set@ /must/
---     be the same value used to create @descriptorUpdateTemplate@
---
--- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07304# @set@ /must/
---     be less than
---     'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo'::@setLayoutCount@
---     provided when @layout@ was created
---
--- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07305# @set@ /must/
---     be the unique set number in the pipeline layout that uses a
---     descriptor set layout that was created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-parameter#
---     @descriptorUpdateTemplate@ /must/ be a valid
---     'Vulkan.Core11.Handles.DescriptorUpdateTemplate' handle
---
--- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-parameter#
---     @layout@ /must/ be a valid 'Vulkan.Core10.Handles.PipelineLayout'
---     handle
---
--- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-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-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-cmdpool#
---     The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, or compute operations
---
--- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-videocoding# This
---     command /must/ only be called outside of a video coding scope
---
--- -   #VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent# Each of
---     @commandBuffer@, @descriptorUpdateTemplate@, 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                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- __API example__
---
--- > struct AppDataStructure
--- > {
--- >     VkDescriptorImageInfo  imageInfo;          // a single image info
--- >     // ... some more application related data
--- > };
--- >
--- > const VkDescriptorUpdateTemplateEntry descriptorUpdateTemplateEntries[] =
--- > {
--- >     // binding to a single image descriptor
--- >     {
--- >         .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 =
--- > {
--- >     .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;
--- > myResult = vkCreateDescriptorUpdateTemplate(
--- >     myDevice,
--- >     &createInfo,
--- >     NULL,
--- >     &myDescriptorUpdateTemplate);
--- >
--- > AppDataStructure appData;
--- > // fill appData here or cache it in your engine
--- > vkCmdPushDescriptorSetWithTemplateKHR(myCmdBuffer, myDescriptorUpdateTemplate, myPipelineLayout, 0,&appData);
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_descriptor_update_template VK_KHR_descriptor_update_template>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_push_descriptor VK_KHR_push_descriptor>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core11.Handles.DescriptorUpdateTemplate',
--- 'Vulkan.Core10.Handles.PipelineLayout'
-cmdPushDescriptorSetWithTemplateKHR :: forall io
-                                     . (MonadIO io)
-                                    => -- | @commandBuffer@ is the command buffer that the descriptors will be
-                                       -- recorded in.
-                                       CommandBuffer
-                                    -> -- | @descriptorUpdateTemplate@ is a descriptor update template defining how
-                                       -- to interpret the descriptor information in @pData@.
-                                       DescriptorUpdateTemplate
-                                    -> -- | @layout@ is a 'Vulkan.Core10.Handles.PipelineLayout' object used to
-                                       -- program the bindings. It /must/ be compatible with the layout used to
-                                       -- create the @descriptorUpdateTemplate@ handle.
-                                       PipelineLayout
-                                    -> -- | @set@ is the set number of the descriptor set in the pipeline layout
-                                       -- that will be updated. This /must/ be the same number used to create the
-                                       -- @descriptorUpdateTemplate@ handle.
-                                       ("set" ::: Word32)
-                                    -> -- | @pData@ is a pointer to memory containing descriptors for the templated
-                                       -- update.
-                                       ("data" ::: Ptr ())
-                                    -> io ()
-cmdPushDescriptorSetWithTemplateKHR commandBuffer
-                                      descriptorUpdateTemplate
-                                      layout
-                                      set
-                                      data' = liftIO $ do
-  let vkCmdPushDescriptorSetWithTemplateKHRPtr = pVkCmdPushDescriptorSetWithTemplateKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdPushDescriptorSetWithTemplateKHRPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushDescriptorSetWithTemplateKHR is null" Nothing Nothing
-  let vkCmdPushDescriptorSetWithTemplateKHR' = mkVkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHRPtr
-  traceAroundEvent "vkCmdPushDescriptorSetWithTemplateKHR" (vkCmdPushDescriptorSetWithTemplateKHR'
-                                                              (commandBufferHandle (commandBuffer))
-                                                              (descriptorUpdateTemplate)
-                                                              (layout)
-                                                              (set)
-                                                              (data'))
   pure $ ()
 
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_push_descriptor - device extension
 --
--- == VK_KHR_push_descriptor
+-- = VK_KHR_push_descriptor
 --
 -- [__Name String__]
 --     @VK_KHR_push_descriptor@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
@@ -60,16 +62,12 @@
 -- -   'cmdPushDescriptorSetKHR'
 --
 -- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+-- or
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_descriptor_update_template VK_KHR_descriptor_update_template>
 -- is supported:
 --
--- -   'cmdPushDescriptorSetWithTemplateKHR'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
--- is supported:
---
--- -   'cmdPushDescriptorSetWithTemplateKHR'
+-- -   'Vulkan.Extensions.VK_KHR_descriptor_update_template.cmdPushDescriptorSetWithTemplateKHR'
 --
 -- == New Structures
 --
@@ -94,6 +92,8 @@
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR'
 --
 -- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+-- or
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_descriptor_update_template VK_KHR_descriptor_update_template>
 -- is supported:
 --
@@ -102,15 +102,6 @@
 --
 --     -   'Vulkan.Core11.Enums.DescriptorUpdateTemplateType.DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR'
 --
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
--- is supported:
---
--- -   Extending
---     'Vulkan.Core11.Enums.DescriptorUpdateTemplateType.DescriptorUpdateTemplateType':
---
---     -   'Vulkan.Core11.Enums.DescriptorUpdateTemplateType.DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR'
---
 -- == Version History
 --
 -- -   Revision 1, 2016-10-15 (Jeff Bolz)
@@ -123,7 +114,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePushDescriptorPropertiesKHR', 'cmdPushDescriptorSetKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_ray_query - device extension
 --
--- == VK_KHR_ray_query
+-- = VK_KHR_ray_query
 --
 -- [__Name String__]
 --     @VK_KHR_ray_query@
@@ -42,7 +42,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_query.txt GLSL_EXT_ray_query>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_ray_query.txt GLSL_EXT_ray_query>
 --
 -- [__Contributors__]
 --
@@ -235,7 +235,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRayQueryFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_ray_query - device extension
 --
--- == VK_KHR_ray_query
+-- = VK_KHR_ray_query
 --
 -- [__Name String__]
 --     @VK_KHR_ray_query@
@@ -42,7 +42,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_query.txt GLSL_EXT_ray_query>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_ray_query.txt GLSL_EXT_ray_query>
 --
 -- [__Contributors__]
 --
@@ -235,7 +235,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRayQueryFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_ray_tracing_maintenance1 - device extension
 --
--- == VK_KHR_ray_tracing_maintenance1
+-- = VK_KHR_ray_tracing_maintenance1
 --
 -- [__Name String__]
 --     @VK_KHR_ray_tracing_maintenance1@
@@ -25,6 +25,10 @@
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_EXT_device_generated_commands
+--
 --     -   Interacts with VK_KHR_ray_tracing_pipeline
 --
 --     -   Interacts with VK_KHR_synchronization2
@@ -46,7 +50,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_cull_mask.txt GLSL_EXT_ray_cull_mask>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_ray_cull_mask.txt GLSL_EXT_ray_cull_mask>
 --
 --     -   Interacts with @VK_KHR_ray_tracing_pipeline@
 --
@@ -91,7 +95,7 @@
 --     Vulkan. This extension provides access to built-in @CullMaskKHR@
 --     shader variable which contains the value of the @OpTrace*@
 --     @Cull Mask@ parameter. This new shader variable is accessible in the
---     intersection, any-hit, closest-hit and miss shader stages.
+--     intersection, any-hit, closest hit and miss shader stages.
 --
 -- -   Adds support for a new pipeline stage and access mask built on top
 --     of @VK_KHR_synchronization2@:
@@ -160,22 +164,35 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- and
+-- <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.Core13.Enums.AccessFlags2.AccessFlagBits2':
+--
+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>
+-- is supported:
+--
 -- -   Extending
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
+--     'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectCommandsTokenTypeEXT':
 --
---     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR'
+--     -   'Vulkan.Extensions.VK_EXT_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT'
 --
 -- If
 -- <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_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
--- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':
+-- -   Extending
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
 --
---     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR'
+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR'
 --
 -- == New Built-In Variables
 --
@@ -197,7 +214,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRayTracingMaintenance1FeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -213,6 +230,7 @@
                                                           , pattern KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION
                                                           , KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME
                                                           , pattern KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME
+                                                          , IndirectCommandsTokenTypeEXT(..)
                                                           ) where
 
 import Vulkan.Internal.Utils (traceAroundEvent)
@@ -255,6 +273,7 @@
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR))
+import Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectCommandsTokenTypeEXT(..))
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
   unsafe
@@ -277,17 +296,34 @@
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-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
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-vkCmdTraceRaysIndirect2KHR-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-mipmapMode-04770# If a
 --     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
 --     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
@@ -295,6 +331,35 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
 --
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-mipmapMode-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-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>,
@@ -362,7 +427,7 @@
 --     '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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-cubicRangeClamp 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
@@ -380,7 +445,7 @@
 --
 -- -   #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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-selectableCubicWeights 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
@@ -452,6 +517,13 @@
 --     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-10068# For each array of
+--     resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
 -- -   #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
@@ -531,9 +603,9 @@
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-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
+--     specified statically in the 'Vulkan.Core10.Handles.Pipeline' object
+--     bound to the pipeline bind point used by this command, since that
+--     pipeline was bound
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08609# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
@@ -573,11 +645,11 @@
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-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
+--     feature 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-vkCmdTraceRaysIndirect2KHR-uniformBuffers-06935# If any stage
 --     of the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
@@ -649,7 +721,7 @@
 --     '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 ???>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-image-dimensions ???>
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-format-07753# If a
 --     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
@@ -803,7 +875,7 @@
 --     @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.
+--     the image view’s format /must/ be a single-component format
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09217# If a
 --     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
@@ -815,9 +887,21 @@
 --     executed by this command /must/
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>
 --
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-09600# If a descriptor with
+--     type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-03429# Any shader group handle
---     referenced by this call /must/ have been queried from the currently
---     bound ray tracing pipeline
+--     referenced by this call /must/ have been queried from the bound ray
+--     tracing pipeline
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-09458# If the bound ray
 --     tracing pipeline state was created with the
@@ -941,7 +1025,7 @@
 -- the similarly named parameters of
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR'.
 --
--- Indirect shader binding table buffer parameters must satisfy the same
+-- Indirect shader binding table buffer parameters /must/ satisfy the same
 -- memory alignment and binding requirements as their counterparts in
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR'
 -- and 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR'.
@@ -1032,42 +1116,42 @@
 --     @callableShaderBindingTableStride@ /must/ be less than or equal to
 --     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxShaderGroupStride@
 --
--- -   #VUID-VkTraceRaysIndirectCommand2KHR-flags-03696# If the currently
---     bound ray tracing pipeline was created with @flags@ that included
+-- -   #VUID-VkTraceRaysIndirectCommand2KHR-flags-03696# If the bound ray
+--     tracing pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',
 --     @hitShaderBindingTableAddress@ /must/ not be zero
 --
--- -   #VUID-VkTraceRaysIndirectCommand2KHR-flags-03697# If the currently
---     bound ray tracing pipeline was created with @flags@ that included
+-- -   #VUID-VkTraceRaysIndirectCommand2KHR-flags-03697# If the bound ray
+--     tracing pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',
 --     @hitShaderBindingTableAddress@ /must/ not be zero
 --
--- -   #VUID-VkTraceRaysIndirectCommand2KHR-flags-03511# If the currently
---     bound ray tracing pipeline was created with @flags@ that included
+-- -   #VUID-VkTraceRaysIndirectCommand2KHR-flags-03511# If the bound ray
+--     tracing pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR',
 --     the shader group handle identified by
---     @missShaderBindingTableAddress@ /must/ not be set to zero
+--     @missShaderBindingTableAddress@ /must/ not be zero
 --
--- -   #VUID-VkTraceRaysIndirectCommand2KHR-flags-03512# If the currently
---     bound ray tracing pipeline was created with @flags@ that included
+-- -   #VUID-VkTraceRaysIndirectCommand2KHR-flags-03512# If the bound ray
+--     tracing pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR',
 --     entries in the table identified by @hitShaderBindingTableAddress@
 --     accessed as a result of this command in order to execute an any-hit
---     shader /must/ not be set to zero
+--     shader /must/ not be zero
 --
--- -   #VUID-VkTraceRaysIndirectCommand2KHR-flags-03513# If the currently
---     bound ray tracing pipeline was created with @flags@ that included
+-- -   #VUID-VkTraceRaysIndirectCommand2KHR-flags-03513# If the bound ray
+--     tracing pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',
 --     entries in the table identified by @hitShaderBindingTableAddress@
 --     accessed as a result of this command in order to execute a closest
---     hit shader /must/ not be set to zero
+--     hit shader /must/ not be zero
 --
--- -   #VUID-VkTraceRaysIndirectCommand2KHR-flags-03514# If the currently
---     bound ray tracing pipeline was created with @flags@ that included
+-- -   #VUID-VkTraceRaysIndirectCommand2KHR-flags-03514# If the bound ray
+--     tracing pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',
 --     entries in the table identified by @hitShaderBindingTableAddress@
 --     accessed as a result of this command in order to execute an
---     intersection shader /must/ not be set to zero
+--     intersection shader /must/ not be zero
 --
 -- -   #VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-04735#
 --     Any non-zero hit shader group entries in the table identified by
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_ray_tracing_maintenance1 - device extension
 --
--- == VK_KHR_ray_tracing_maintenance1
+-- = VK_KHR_ray_tracing_maintenance1
 --
 -- [__Name String__]
 --     @VK_KHR_ray_tracing_maintenance1@
@@ -25,6 +25,10 @@
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_EXT_device_generated_commands
+--
 --     -   Interacts with VK_KHR_ray_tracing_pipeline
 --
 --     -   Interacts with VK_KHR_synchronization2
@@ -46,7 +50,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_cull_mask.txt GLSL_EXT_ray_cull_mask>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_ray_cull_mask.txt GLSL_EXT_ray_cull_mask>
 --
 --     -   Interacts with @VK_KHR_ray_tracing_pipeline@
 --
@@ -91,7 +95,7 @@
 --     Vulkan. This extension provides access to built-in @CullMaskKHR@
 --     shader variable which contains the value of the @OpTrace*@
 --     @Cull Mask@ parameter. This new shader variable is accessible in the
---     intersection, any-hit, closest-hit and miss shader stages.
+--     intersection, any-hit, closest hit and miss shader stages.
 --
 -- -   Adds support for a new pipeline stage and access mask built on top
 --     of @VK_KHR_synchronization2@:
@@ -160,22 +164,35 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- and
+-- <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.Core13.Enums.AccessFlags2.AccessFlagBits2':
+--
+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>
+-- is supported:
+--
 -- -   Extending
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
+--     'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectCommandsTokenTypeEXT':
 --
---     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR'
+--     -   'Vulkan.Extensions.VK_EXT_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT'
 --
 -- If
 -- <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_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
--- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':
+-- -   Extending
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
 --
---     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR'
+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR'
 --
 -- == New Built-In Variables
 --
@@ -197,7 +214,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRayTracingMaintenance1FeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_ray_tracing_pipeline - device extension
 --
--- == VK_KHR_ray_tracing_pipeline
+-- = VK_KHR_ray_tracing_pipeline
 --
 -- [__Name String__]
 --     @VK_KHR_ray_tracing_pipeline@
@@ -25,6 +25,10 @@
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_KHR_ray_query
+--
 -- [__SPIR-V Dependencies__]
 --
 --     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_ray_tracing.html SPV_KHR_ray_tracing>
@@ -42,7 +46,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_tracing.txt GLSL_EXT_ray_tracing>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_ray_tracing.txt GLSL_EXT_ray_tracing>
 --
 --     -   This extension interacts with
 --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#versions-1.2 Vulkan 1.2>
@@ -608,7 +612,7 @@
 -- required dependency, particularly when the “Feature Requirements”
 -- section says it is required to be supported anyhow?
 --
--- __RESOLVED__: If @VK_KHR_pipeline_library@ were a required extension
+-- __RESOLVED__: If the @VK_KHR_pipeline_library@ extensino were a required
 -- dependency, then every application would need to enable the extension
 -- whether or not they actually want to use the pipeline library
 -- functionality. Developers found this to be annoying and unfriendly
@@ -701,19 +705,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.SHADER_UNUSED_KHR',
--- 'PhysicalDeviceRayTracingPipelineFeaturesKHR',
--- 'PhysicalDeviceRayTracingPipelinePropertiesKHR',
--- 'RayTracingPipelineCreateInfoKHR',
--- 'RayTracingPipelineInterfaceCreateInfoKHR',
--- 'RayTracingShaderGroupCreateInfoKHR', 'RayTracingShaderGroupTypeKHR',
--- 'ShaderGroupShaderKHR', 'StridedDeviceAddressRegionKHR',
--- 'TraceRaysIndirectCommandKHR', 'cmdSetRayTracingPipelineStackSizeKHR',
--- 'cmdTraceRaysIndirectKHR', 'cmdTraceRaysKHR',
--- 'createRayTracingPipelinesKHR',
--- 'getRayTracingCaptureReplayShaderGroupHandlesKHR',
--- 'getRayTracingShaderGroupHandlesKHR',
--- 'getRayTracingShaderGroupStackSizeKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -849,6 +841,7 @@
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.Core10.Handles (Pipeline)
 import Vulkan.Core10.Handles (Pipeline(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_binary (PipelineBinaryInfoKHR)
 import Vulkan.Core10.Handles (PipelineCache)
 import Vulkan.Core10.Handles (PipelineCache(..))
 import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
@@ -894,17 +887,34 @@
 --
 -- -   #VUID-vkCmdTraceRaysKHR-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
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-vkCmdTraceRaysKHR-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
 -- -   #VUID-vkCmdTraceRaysKHR-mipmapMode-04770# If a
 --     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
 --     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
@@ -912,6 +922,35 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
 --
+-- -   #VUID-vkCmdTraceRaysKHR-mipmapMode-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdTraceRaysKHR-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdTraceRaysKHR-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
 -- -   #VUID-vkCmdTraceRaysKHR-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>,
@@ -979,7 +1018,7 @@
 --     '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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-cubicRangeClamp 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
@@ -996,7 +1035,7 @@
 --     '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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-selectableCubicWeights 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
@@ -1068,6 +1107,13 @@
 --     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
+-- -   #VUID-vkCmdTraceRaysKHR-None-10068# For each array of resources that
+--     is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
 -- -   #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
@@ -1144,10 +1190,10 @@
 --
 -- -   #VUID-vkCmdTraceRaysKHR-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
+--     any calls to dynamic state setting commands for any state specified
+--     statically in the 'Vulkan.Core10.Handles.Pipeline' object bound to
+--     the pipeline bind point used by this command, since that pipeline
+--     was bound
 --
 -- -   #VUID-vkCmdTraceRaysKHR-None-08609# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
@@ -1187,11 +1233,11 @@
 --
 -- -   #VUID-vkCmdTraceRaysKHR-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
+--     feature 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-vkCmdTraceRaysKHR-uniformBuffers-06935# If any stage of the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
@@ -1263,7 +1309,7 @@
 --     '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 ???>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-image-dimensions ???>
 --
 -- -   #VUID-vkCmdTraceRaysKHR-format-07753# If a
 --     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
@@ -1415,7 +1461,7 @@
 --     @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.
+--     the image view’s format /must/ be a single-component format
 --
 -- -   #VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09217# If a
 --     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
@@ -1427,9 +1473,21 @@
 --     by this command /must/
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>
 --
+-- -   #VUID-vkCmdTraceRaysKHR-None-09600# If a descriptor with type equal
+--     to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
 -- -   #VUID-vkCmdTraceRaysKHR-None-03429# Any shader group handle
---     referenced by this call /must/ have been queried from the currently
---     bound ray tracing pipeline
+--     referenced by this call /must/ have been queried from the bound ray
+--     tracing pipeline
 --
 -- -   #VUID-vkCmdTraceRaysKHR-None-09458# If the bound ray tracing
 --     pipeline state was created with the
@@ -1536,45 +1594,43 @@
 --     to
 --     'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxShaderGroupStride@
 --
--- -   #VUID-vkCmdTraceRaysKHR-flags-03696# If the currently bound ray
---     tracing pipeline was created with @flags@ that included
+-- -   #VUID-vkCmdTraceRaysKHR-flags-03696# If the bound ray tracing
+--     pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',
 --     @pHitShaderBindingTable->deviceAddress@ /must/ not be zero
 --
--- -   #VUID-vkCmdTraceRaysKHR-flags-03697# If the currently bound ray
---     tracing pipeline was created with @flags@ that included
+-- -   #VUID-vkCmdTraceRaysKHR-flags-03697# If the bound ray tracing
+--     pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',
 --     @pHitShaderBindingTable->deviceAddress@ /must/ not be zero
 --
--- -   #VUID-vkCmdTraceRaysKHR-flags-03511# If the currently bound ray
---     tracing pipeline was created with @flags@ that included
+-- -   #VUID-vkCmdTraceRaysKHR-flags-03511# If the bound ray tracing
+--     pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR',
 --     the shader group handle identified by
---     @pMissShaderBindingTable->deviceAddress@ /must/ not be set to zero
+--     @pMissShaderBindingTable->deviceAddress@ /must/ not be zero
 --
--- -   #VUID-vkCmdTraceRaysKHR-flags-03512# If the currently bound ray
---     tracing pipeline was created with @flags@ that included
+-- -   #VUID-vkCmdTraceRaysKHR-flags-03512# If the bound ray tracing
+--     pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR',
 --     entries in the table identified by
 --     @pHitShaderBindingTable->deviceAddress@ accessed as a result of this
---     command in order to execute an any-hit shader /must/ not be set to
---     zero
+--     command in order to execute an any-hit shader /must/ not be zero
 --
--- -   #VUID-vkCmdTraceRaysKHR-flags-03513# If the currently bound ray
---     tracing pipeline was created with @flags@ that included
+-- -   #VUID-vkCmdTraceRaysKHR-flags-03513# If the bound ray tracing
+--     pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',
 --     entries in the table identified by
 --     @pHitShaderBindingTable->deviceAddress@ accessed as a result of this
---     command in order to execute a closest hit shader /must/ not be set
---     to zero
+--     command in order to execute a closest hit shader /must/ not be zero
 --
--- -   #VUID-vkCmdTraceRaysKHR-flags-03514# If the currently bound ray
---     tracing pipeline was created with @flags@ that included
+-- -   #VUID-vkCmdTraceRaysKHR-flags-03514# If the bound ray tracing
+--     pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',
 --     entries in the table identified by
 --     @pHitShaderBindingTable->deviceAddress@ accessed as a result of this
---     command in order to execute an intersection shader /must/ not be set
---     to zero
+--     command in order to execute an intersection shader /must/ not be
+--     zero
 --
 -- -   #VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04735# Any non-zero
 --     hit shader group entries in the table identified by
@@ -1735,6 +1791,10 @@
 --
 -- = Description
 --
+-- On success, an array of @groupCount@ shader handles will be written to
+-- @pData@, with each element being of size
+-- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupHandleSize@.
+--
 -- If @pipeline@ was created with
 -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
 -- and the
@@ -1819,8 +1879,8 @@
                                       ("groupCount" ::: Word32)
                                    -> -- | @dataSize@ is the size in bytes of the buffer pointed to by @pData@.
                                       ("dataSize" ::: Word64)
-                                   -> -- | @pData@ is a pointer to a user-allocated buffer where the results will
-                                      -- be written.
+                                   -> -- | @pData@ is a pointer to an application-allocated buffer where the
+                                      -- results will be written.
                                       ("data" ::: Ptr ())
                                    -> io ()
 getRayTracingShaderGroupHandlesKHR device
@@ -1855,6 +1915,10 @@
 --
 -- = Description
 --
+-- On success, an array of @groupCount@ shader handles will be written to
+-- @pData@, with each element being of size
+-- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupHandleCaptureReplaySize@.
+--
 -- Once queried, this opaque data /can/ be provided at pipeline creation
 -- time (in a subsequent execution), using
 -- 'RayTracingShaderGroupCreateInfoKHR'::@pShaderGroupCaptureReplayHandle@,
@@ -1950,8 +2014,8 @@
                                                    ("groupCount" ::: Word32)
                                                 -> -- | @dataSize@ is the size in bytes of the buffer pointed to by @pData@.
                                                    ("dataSize" ::: Word64)
-                                                -> -- | @pData@ is a pointer to a user-allocated buffer where the results will
-                                                   -- be written.
+                                                -> -- | @pData@ is a pointer to an application-allocated buffer where the
+                                                   -- results will be written.
                                                    ("data" ::: Ptr ())
                                                 -> io ()
 getRayTracingCaptureReplayShaderGroupHandlesKHR device
@@ -1999,6 +2063,10 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCreateRayTracingPipelinesKHR-device-09677# @device@ /must/
+--     support at least one queue family with the
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT' capability
+--
 -- -   #VUID-vkCreateRayTracingPipelinesKHR-flags-03415# If the @flags@
 --     member of any element of @pCreateInfos@ contains the
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
@@ -2028,6 +2096,37 @@
 --     previous deferred operation that was associated with
 --     @deferredOperation@ /must/ be complete
 --
+-- -   #VUID-vkCreateRayTracingPipelinesKHR-pNext-09616# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@, @pipelineCache@ /must/
+--     be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCreateRayTracingPipelinesKHR-pNext-09617# If a
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
+--     structure with the
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+--     flag set is included in the @pNext@ chain of any element of
+--     @pCreateInfos@, @pipelineCache@ /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCreateRayTracingPipelinesKHR-binaryCount-09620# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT'
+--     /must/ not be set in the @flags@ of that element
+--
+-- -   #VUID-vkCreateRayTracingPipelinesKHR-binaryCount-09621# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT'
+--     /must/ not be set in the @flags@ of that element
+--
+-- -   #VUID-vkCreateRayTracingPipelinesKHR-binaryCount-09622# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'
+--     /must/ not be set in the @flags@ of that element
+--
 -- -   #VUID-vkCreateRayTracingPipelinesKHR-rayTracingPipeline-03586# The
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
 --     feature /must/ be enabled
@@ -2197,17 +2296,34 @@
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-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
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-vkCmdTraceRaysIndirectKHR-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-mipmapMode-04770# If a
 --     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
 --     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
@@ -2215,6 +2331,35 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
 --
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-mipmapMode-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-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>,
@@ -2282,7 +2427,7 @@
 --     '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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-cubicRangeClamp 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
@@ -2299,7 +2444,7 @@
 --     '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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-selectableCubicWeights 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
@@ -2371,6 +2516,13 @@
 --     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-None-10068# For each array of
+--     resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
 -- -   #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
@@ -2450,9 +2602,9 @@
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-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
+--     specified statically in the 'Vulkan.Core10.Handles.Pipeline' object
+--     bound to the pipeline bind point used by this command, since that
+--     pipeline was bound
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08609# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
@@ -2492,11 +2644,11 @@
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-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
+--     feature 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-vkCmdTraceRaysIndirectKHR-uniformBuffers-06935# If any stage
 --     of the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
@@ -2568,7 +2720,7 @@
 --     '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 ???>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-image-dimensions ???>
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-format-07753# If a
 --     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
@@ -2722,7 +2874,7 @@
 --     @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.
+--     the image view’s format /must/ be a single-component format
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09217# If a
 --     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
@@ -2734,9 +2886,21 @@
 --     executed by this command /must/
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>
 --
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-None-09600# If a descriptor with
+--     type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-03429# Any shader group handle
---     referenced by this call /must/ have been queried from the currently
---     bound ray tracing pipeline
+--     referenced by this call /must/ have been queried from the bound ray
+--     tracing pipeline
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-09458# If the bound ray tracing
 --     pipeline state was created with the
@@ -2845,45 +3009,43 @@
 --     to
 --     'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxShaderGroupStride@
 --
--- -   #VUID-vkCmdTraceRaysIndirectKHR-flags-03696# If the currently bound
---     ray tracing pipeline was created with @flags@ that included
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-flags-03696# If the bound ray
+--     tracing pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',
 --     @pHitShaderBindingTable->deviceAddress@ /must/ not be zero
 --
--- -   #VUID-vkCmdTraceRaysIndirectKHR-flags-03697# If the currently bound
---     ray tracing pipeline was created with @flags@ that included
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-flags-03697# If the bound ray
+--     tracing pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',
 --     @pHitShaderBindingTable->deviceAddress@ /must/ not be zero
 --
--- -   #VUID-vkCmdTraceRaysIndirectKHR-flags-03511# If the currently bound
---     ray tracing pipeline was created with @flags@ that included
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-flags-03511# If the bound ray
+--     tracing pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR',
 --     the shader group handle identified by
---     @pMissShaderBindingTable->deviceAddress@ /must/ not be set to zero
+--     @pMissShaderBindingTable->deviceAddress@ /must/ not be zero
 --
--- -   #VUID-vkCmdTraceRaysIndirectKHR-flags-03512# If the currently bound
---     ray tracing pipeline was created with @flags@ that included
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-flags-03512# If the bound ray
+--     tracing pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR',
 --     entries in the table identified by
 --     @pHitShaderBindingTable->deviceAddress@ accessed as a result of this
---     command in order to execute an any-hit shader /must/ not be set to
---     zero
+--     command in order to execute an any-hit shader /must/ not be zero
 --
--- -   #VUID-vkCmdTraceRaysIndirectKHR-flags-03513# If the currently bound
---     ray tracing pipeline was created with @flags@ that included
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-flags-03513# If the bound ray
+--     tracing pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',
 --     entries in the table identified by
 --     @pHitShaderBindingTable->deviceAddress@ accessed as a result of this
---     command in order to execute a closest hit shader /must/ not be set
---     to zero
+--     command in order to execute a closest hit shader /must/ not be zero
 --
--- -   #VUID-vkCmdTraceRaysIndirectKHR-flags-03514# If the currently bound
---     ray tracing pipeline was created with @flags@ that included
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-flags-03514# If the bound ray
+--     tracing pipeline was created with @flags@ that included
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',
 --     entries in the table identified by
 --     @pHitShaderBindingTable->deviceAddress@ accessed as a result of this
---     command in order to execute an intersection shader /must/ not be set
---     to zero
+--     command in order to execute an intersection shader /must/ not be
+--     zero
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04735# Any
 --     non-zero hit shader group entries in the table identified by
@@ -3058,7 +3220,7 @@
 --     @pipeline@ /must/ be a ray tracing pipeline
 --
 -- -   #VUID-vkGetRayTracingShaderGroupStackSizeKHR-group-03608# The value
---     of @group@ must be less than the number of shader groups in
+--     of @group@ /must/ be less than the number of shader groups in
 --     @pipeline@
 --
 -- -   #VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-03609# The
@@ -3428,9 +3590,9 @@
 -- 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
+-- If the @pNext@ chain includes a
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
--- structure is present in the @pNext@ chain,
+-- structure,
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@
 -- from that structure is used instead of @flags@ from this structure.
 --
@@ -3439,7 +3601,7 @@
 -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-None-09497# If the @pNext@
 --     chain does not include a
 --     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
---     structure, @flags@ must be a valid combination of
+--     structure, @flags@ /must/ be a valid combination of
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
 --     values
 --
@@ -3464,8 +3626,12 @@
 --
 -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-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
+--     @layout@ /must/ match the shader stage
 --
+-- -   #VUID-VkRayTracingPipelineCreateInfoKHR-layout-10069# If a push
+--     constant block is declared in a shader, the block must be contained
+--     inside the push constant range in @layout@ that matches the stage
+--
 -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-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
@@ -3706,6 +3872,7 @@
 -- -   #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.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR',
 --     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR',
 --     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',
 --     or
@@ -3820,6 +3987,7 @@
   extends _ f
     | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f
     | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f
+    | Just Refl <- eqT @e @PipelineBinaryInfoKHR = Just f
     | Just Refl <- eqT @e @PipelineCreateFlags2CreateInfoKHR = Just f
     | otherwise = Nothing
 
@@ -3926,40 +4094,6 @@
 --
 -- = Description
 --
--- -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value
---     identifying this structure.
---
--- -   @pNext@ is @NULL@ or a pointer to a structure extending this
---     structure.
---
--- -   #features-rayTracingPipeline# @rayTracingPipeline@ indicates whether
---     the implementation supports the ray tracing pipeline functionality.
---     See
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing Ray Tracing>.
---
--- -   #features-rayTracingPipelineShaderGroupHandleCaptureReplay#
---     @rayTracingPipelineShaderGroupHandleCaptureReplay@ indicates whether
---     the implementation supports saving and reusing shader group handles,
---     e.g. for trace capture and replay.
---
--- -   #features-rayTracingPipelineShaderGroupHandleCaptureReplayMixed#
---     @rayTracingPipelineShaderGroupHandleCaptureReplayMixed@ indicates
---     whether the implementation supports reuse of shader group handles
---     being arbitrarily mixed with creation of non-reused shader group
---     handles. If this is 'Vulkan.Core10.FundamentalTypes.FALSE', all
---     reused shader group handles /must/ be specified before any
---     non-reused handles /may/ be created.
---
--- -   #features-rayTracingPipelineTraceRaysIndirect#
---     @rayTracingPipelineTraceRaysIndirect@ indicates whether the
---     implementation supports indirect ray tracing commands, e.g.
---     'cmdTraceRaysIndirectKHR'.
---
--- -   #features-rayTraversalPrimitiveCulling#
---     @rayTraversalPrimitiveCulling@ indicates whether the implementation
---     supports
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-culling-primitive primitive culling during ray traversal>.
---
 -- If the 'PhysicalDeviceRayTracingPipelineFeaturesKHR' structure is
 -- included in the @pNext@ chain of the
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'
@@ -3990,15 +4124,31 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceRayTracingPipelineFeaturesKHR = PhysicalDeviceRayTracingPipelineFeaturesKHR
-  { -- No documentation found for Nested "VkPhysicalDeviceRayTracingPipelineFeaturesKHR" "rayTracingPipeline"
+  { -- | #features-rayTracingPipeline# @rayTracingPipeline@ indicates whether the
+    -- implementation supports the ray tracing pipeline functionality. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing Ray Tracing>.
     rayTracingPipeline :: Bool
-  , -- No documentation found for Nested "VkPhysicalDeviceRayTracingPipelineFeaturesKHR" "rayTracingPipelineShaderGroupHandleCaptureReplay"
+  , -- | #features-rayTracingPipelineShaderGroupHandleCaptureReplay#
+    -- @rayTracingPipelineShaderGroupHandleCaptureReplay@ indicates whether the
+    -- implementation supports saving and reusing shader group handles, e.g.
+    -- for trace capture and replay.
     rayTracingPipelineShaderGroupHandleCaptureReplay :: Bool
-  , -- No documentation found for Nested "VkPhysicalDeviceRayTracingPipelineFeaturesKHR" "rayTracingPipelineShaderGroupHandleCaptureReplayMixed"
+  , -- | #features-rayTracingPipelineShaderGroupHandleCaptureReplayMixed#
+    -- @rayTracingPipelineShaderGroupHandleCaptureReplayMixed@ indicates
+    -- whether the implementation supports reuse of shader group handles being
+    -- arbitrarily mixed with creation of non-reused shader group handles. If
+    -- this is 'Vulkan.Core10.FundamentalTypes.FALSE', all reused shader group
+    -- handles /must/ be specified before any non-reused handles /may/ be
+    -- created.
     rayTracingPipelineShaderGroupHandleCaptureReplayMixed :: Bool
-  , -- No documentation found for Nested "VkPhysicalDeviceRayTracingPipelineFeaturesKHR" "rayTracingPipelineTraceRaysIndirect"
+  , -- | #features-rayTracingPipelineTraceRaysIndirect#
+    -- @rayTracingPipelineTraceRaysIndirect@ indicates whether the
+    -- implementation supports indirect ray tracing commands, e.g.
+    -- 'cmdTraceRaysIndirectKHR'.
     rayTracingPipelineTraceRaysIndirect :: Bool
-  , -- No documentation found for Nested "VkPhysicalDeviceRayTracingPipelineFeaturesKHR" "rayTraversalPrimitiveCulling"
+  , -- | #features-rayTraversalPrimitiveCulling# @rayTraversalPrimitiveCulling@
+    -- indicates whether the implementation supports
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-culling-primitive primitive culling during ray traversal>.
     rayTraversalPrimitiveCulling :: Bool
   }
   deriving (Typeable, Eq)
@@ -4102,7 +4252,8 @@
     -- 'cmdTraceRaysIndirectKHR' or 'cmdTraceRaysKHR' command.
     maxRayDispatchInvocationCount :: Word32
   , -- | @shaderGroupHandleAlignment@ is the /required/ alignment in bytes for
-    -- each shader binding table entry. The value /must/ be a power of two.
+    -- each entry in a shader binding table. The value /must/ be a power of
+    -- two.
     shaderGroupHandleAlignment :: Word32
   , -- | @maxRayHitAttributeSize@ is the maximum size in bytes for a ray
     -- attribute structure
@@ -4352,8 +4503,6 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirements scalar alignment>
 -- equal to the largest scalar alignment of any of the block’s members.
 --
--- Note
---
 -- There is no explicit upper limit for @maxPipelineRayPayloadSize@, but in
 -- practice it should be kept as small as possible. Similar to invocation
 -- local memory, it must be allocated for each shader invocation and for
@@ -4425,8 +4574,6 @@
 --
 -- = Description
 --
--- Note
---
 -- For current group types, the hit group type could be inferred from the
 -- presence or absence of the intersection shader, but we provide the type
 -- explicitly for future hit groups that do not have that property.
@@ -4440,21 +4587,21 @@
 newtype RayTracingShaderGroupTypeKHR = RayTracingShaderGroupTypeKHR Int32
   deriving newtype (Eq, Ord, Storable, Zero)
 
--- | 'RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR' indicates a shader group
--- with a single
+-- | 'RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR' specifies that a shader
+-- group with a single
 -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_RAYGEN_BIT_KHR',
 -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MISS_BIT_KHR', or
 -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_CALLABLE_BIT_KHR'
 -- shader in it.
 pattern RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = RayTracingShaderGroupTypeKHR 0
 
--- | 'RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR' specifies a
+-- | 'RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR' specifies that a
 -- shader group that only hits triangles and /must/ not contain an
 -- intersection shader, only closest hit and any-hit shaders.
 pattern RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = RayTracingShaderGroupTypeKHR 1
 
--- | 'RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR' specifies a
--- shader group that only intersects with custom geometry and /must/
+-- | 'RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR' specifies that
+-- a shader group that only intersects with custom geometry and /must/
 -- contain an intersection shader and /may/ contain closest hit and any-hit
 -- shaders.
 pattern RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = RayTracingShaderGroupTypeKHR 2
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_ray_tracing_pipeline - device extension
 --
--- == VK_KHR_ray_tracing_pipeline
+-- = VK_KHR_ray_tracing_pipeline
 --
 -- [__Name String__]
 --     @VK_KHR_ray_tracing_pipeline@
@@ -25,6 +25,10 @@
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_KHR_ray_query
+--
 -- [__SPIR-V Dependencies__]
 --
 --     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_ray_tracing.html SPV_KHR_ray_tracing>
@@ -42,7 +46,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_tracing.txt GLSL_EXT_ray_tracing>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_ray_tracing.txt GLSL_EXT_ray_tracing>
 --
 --     -   This extension interacts with
 --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#versions-1.2 Vulkan 1.2>
@@ -608,7 +612,7 @@
 -- required dependency, particularly when the “Feature Requirements”
 -- section says it is required to be supported anyhow?
 --
--- __RESOLVED__: If @VK_KHR_pipeline_library@ were a required extension
+-- __RESOLVED__: If the @VK_KHR_pipeline_library@ extensino were a required
 -- dependency, then every application would need to enable the extension
 -- whether or not they actually want to use the pipeline library
 -- functionality. Developers found this to be annoying and unfriendly
@@ -701,19 +705,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.SHADER_UNUSED_KHR',
--- 'PhysicalDeviceRayTracingPipelineFeaturesKHR',
--- 'PhysicalDeviceRayTracingPipelinePropertiesKHR',
--- 'RayTracingPipelineCreateInfoKHR',
--- 'RayTracingPipelineInterfaceCreateInfoKHR',
--- 'RayTracingShaderGroupCreateInfoKHR', 'RayTracingShaderGroupTypeKHR',
--- 'ShaderGroupShaderKHR', 'StridedDeviceAddressRegionKHR',
--- 'TraceRaysIndirectCommandKHR', 'cmdSetRayTracingPipelineStackSizeKHR',
--- 'cmdTraceRaysIndirectKHR', 'cmdTraceRaysKHR',
--- 'createRayTracingPipelinesKHR',
--- 'getRayTracingCaptureReplayShaderGroupHandlesKHR',
--- 'getRayTracingShaderGroupHandlesKHR',
--- 'getRayTracingShaderGroupStackSizeKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs b/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs
--- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_ray_tracing_position_fetch - device extension
 --
--- == VK_KHR_ray_tracing_position_fetch
+-- = VK_KHR_ray_tracing_position_fetch
 --
 -- [__Name String__]
 --     @VK_KHR_ray_tracing_position_fetch@
@@ -42,7 +42,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   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>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_ray_tracing_position_fetch.txt GLSL_EXT_ray_tracing_position_fetch>
 --
 --     -   Interacts with @VK_KHR_ray_tracing_pipeline@
 --
@@ -116,6 +116,8 @@
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingPositionFetchKHR RayTracingPositionFetchKHR>
 --
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryPositionFetchKHR RayQueryPositionFetchKHR>
+--
 -- == Issues
 --
 -- None Yet!
@@ -128,7 +130,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRayTracingPositionFetchFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
--- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_ray_tracing_position_fetch - device extension
 --
--- == VK_KHR_ray_tracing_position_fetch
+-- = VK_KHR_ray_tracing_position_fetch
 --
 -- [__Name String__]
 --     @VK_KHR_ray_tracing_position_fetch@
@@ -42,7 +42,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   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>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_ray_tracing_position_fetch.txt GLSL_EXT_ray_tracing_position_fetch>
 --
 --     -   Interacts with @VK_KHR_ray_tracing_pipeline@
 --
@@ -116,6 +116,8 @@
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingPositionFetchKHR RayTracingPositionFetchKHR>
 --
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryPositionFetchKHR RayQueryPositionFetchKHR>
+--
 -- == Issues
 --
 -- None Yet!
@@ -128,7 +130,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRayTracingPositionFetchFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_relaxed_block_layout - device extension
 --
--- == VK_KHR_relaxed_block_layout
+-- = VK_KHR_relaxed_block_layout
 --
 -- [__Name String__]
 --     @VK_KHR_relaxed_block_layout@
@@ -58,7 +58,7 @@
 -- == Promotion to Vulkan 1.1
 --
 -- All functionality in this extension is included in core Vulkan 1.1, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Enum Constants
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_sampler_mirror_clamp_to_edge - device extension
 --
--- == VK_KHR_sampler_mirror_clamp_to_edge
+-- = VK_KHR_sampler_mirror_clamp_to_edge
 --
 -- [__Name String__]
 --     @VK_KHR_sampler_mirror_clamp_to_edge@
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_sampler_ycbcr_conversion - device extension
 --
--- == VK_KHR_sampler_ycbcr_conversion
+-- = VK_KHR_sampler_ycbcr_conversion
 --
 -- [__Name String__]
 --     @VK_KHR_sampler_ycbcr_conversion@
@@ -21,13 +21,19 @@
 --     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
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_bind_memory2 VK_KHR_bind_memory2>
---     and
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 VK_KHR_get_memory_requirements2>
---     and
+--          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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
@@ -103,8 +109,8 @@
 -- All functionality in this extension is included in core Vulkan 1.1, with
 -- the KHR suffix omitted. However, if Vulkan 1.1 is supported and this
 -- extension is not, the @samplerYcbcrConversion@ capability is optional.
--- The original type, enum and command names are still available as aliases
--- of the core functionality.
+-- The original type, enum, and command names are still available as
+-- aliases of the core functionality.
 --
 -- == New Object Types
 --
@@ -377,14 +383,7 @@
 --
 -- == See Also
 --
--- 'BindImagePlaneMemoryInfoKHR', 'ChromaLocationKHR',
--- 'ImagePlaneMemoryRequirementsInfoKHR',
--- 'PhysicalDeviceSamplerYcbcrConversionFeaturesKHR',
--- 'SamplerYcbcrConversionCreateInfoKHR',
--- 'SamplerYcbcrConversionImageFormatPropertiesKHR',
--- 'SamplerYcbcrConversionInfoKHR', 'SamplerYcbcrConversionKHR',
--- 'SamplerYcbcrModelConversionKHR', 'SamplerYcbcrRangeKHR',
--- 'createSamplerYcbcrConversionKHR', 'destroySamplerYcbcrConversionKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_separate_depth_stencil_layouts - device extension
 --
--- == VK_KHR_separate_depth_stencil_layouts
+-- = VK_KHR_separate_depth_stencil_layouts
 --
 -- [__Name String__]
 --     @VK_KHR_separate_depth_stencil_layouts@
@@ -21,9 +21,16 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__Deprecation State__]
 --
@@ -64,7 +71,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -117,9 +124,7 @@
 --
 -- == See Also
 --
--- 'AttachmentDescriptionStencilLayoutKHR',
--- 'AttachmentReferenceStencilLayoutKHR',
--- 'PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_atomic_int64 - device extension
 --
--- == VK_KHR_shader_atomic_int64
+-- = VK_KHR_shader_atomic_int64
 --
 -- [__Name String__]
 --     @VK_KHR_shader_atomic_int64@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -43,7 +45,7 @@
 --     -   This extension provides API support for
 --         <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_gpu_shader_int64.txt GL_ARB_gpu_shader_int64>
 --         and
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_atomic_int64.txt GL_EXT_shader_atomic_int64>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GL_EXT_shader_atomic_int64.txt GL_EXT_shader_atomic_int64>
 --
 -- [__Contributors__]
 --
@@ -68,8 +70,8 @@
 -- All functionality in this extension is included in core Vulkan 1.2, with
 -- the KHR suffix omitted. However, if Vulkan 1.2 is supported and this
 -- extension is not, the @shaderBufferInt64Atomics@ capability is optional.
--- The original type, enum and command names are still available as aliases
--- of the core functionality.
+-- The original type, enum, and command names are still available as
+-- aliases of the core functionality.
 --
 -- == New Structures
 --
@@ -101,7 +103,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderAtomicInt64FeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_clock - device extension
 --
--- == VK_KHR_shader_clock
+-- = VK_KHR_shader_clock
 --
 -- [__Name String__]
 --     @VK_KHR_shader_clock@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -47,7 +47,7 @@
 --     -   This extension provides API support for
 --         <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_shader_clock.txt GL_ARB_shader_clock>
 --         and
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_realtime_clock.txt GL_EXT_shader_realtime_clock>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GL_EXT_shader_realtime_clock.txt GL_EXT_shader_realtime_clock>
 --
 -- [__Contributors__]
 --
@@ -99,7 +99,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderClockFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_clock - device extension
 --
--- == VK_KHR_shader_clock
+-- = VK_KHR_shader_clock
 --
 -- [__Name String__]
 --     @VK_KHR_shader_clock@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -47,7 +47,7 @@
 --     -   This extension provides API support for
 --         <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_shader_clock.txt GL_ARB_shader_clock>
 --         and
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_realtime_clock.txt GL_EXT_shader_realtime_clock>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GL_EXT_shader_realtime_clock.txt GL_EXT_shader_realtime_clock>
 --
 -- [__Contributors__]
 --
@@ -99,7 +99,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderClockFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_draw_parameters - device extension
 --
--- == VK_KHR_shader_draw_parameters
+-- = VK_KHR_shader_draw_parameters
 --
 -- [__Name String__]
 --     @VK_KHR_shader_draw_parameters@
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_expect_assume.hs b/src/Vulkan/Extensions/VK_KHR_shader_expect_assume.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_expect_assume.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_expect_assume.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_expect_assume - device extension
 --
--- == VK_KHR_shader_expect_assume
+-- = VK_KHR_shader_expect_assume
 --
 -- [__Name String__]
 --     @VK_KHR_shader_expect_assume@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -32,6 +34,9 @@
 --     -   Kevin Petit
 --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_expect_assume] @kpet%0A*Here describe the issue or question you have about the VK_KHR_shader_expect_assume extension* >
 --
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_shader_expect_assume.adoc VK_KHR_shader_expect_assume>
+--
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
@@ -84,7 +89,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderExpectAssumeFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_expect_assume.hs-boot b/src/Vulkan/Extensions/VK_KHR_shader_expect_assume.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_shader_expect_assume.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_shader_expect_assume.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_expect_assume - device extension
 --
--- == VK_KHR_shader_expect_assume
+-- = VK_KHR_shader_expect_assume
 --
 -- [__Name String__]
 --     @VK_KHR_shader_expect_assume@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -32,6 +34,9 @@
 --     -   Kevin Petit
 --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_expect_assume] @kpet%0A*Here describe the issue or question you have about the VK_KHR_shader_expect_assume extension* >
 --
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_shader_expect_assume.adoc VK_KHR_shader_expect_assume>
+--
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
@@ -84,7 +89,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderExpectAssumeFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_float16_int8 - device extension
 --
--- == VK_KHR_shader_float16_int8
+-- = VK_KHR_shader_float16_int8
 --
 -- [__Name String__]
 --     @VK_KHR_shader_float16_int8@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -47,7 +49,7 @@
 --     -   This extension interacts with @VK_KHR_shader_float_controls@
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_explicit_arithmetic_types.txt GL_EXT_shader_explicit_arithmetic_types>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GL_EXT_shader_explicit_arithmetic_types.txt GL_EXT_shader_explicit_arithmetic_types>
 --
 -- [__IP Status__]
 --     No known IP claims.
@@ -85,7 +87,7 @@
 -- All functionality in this extension is included in core Vulkan 1.2, with
 -- the KHR suffix omitted. However, if Vulkan 1.2 is supported and this
 -- extension is not, both the @shaderFloat16@ and @shaderInt8@ capabilities
--- are optional. The original type, enum and command names are still
+-- are optional. The original type, enum, and command names are still
 -- available as aliases of the core functionality.
 --
 -- == New Structures
@@ -118,8 +120,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceFloat16Int8FeaturesKHR',
--- 'PhysicalDeviceShaderFloat16Int8FeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_float_controls - device extension
 --
--- == VK_KHR_shader_float_controls
+-- = VK_KHR_shader_float_controls
 --
 -- [__Name String__]
 --     @VK_KHR_shader_float_controls@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -67,7 +69,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -169,7 +171,7 @@
 -- facet of the extension, we ended up with two different behaviors in the
 -- wild, where some implementations worked as written, and others worked
 -- based on the naming. As these are hard limits in hardware with reasons
--- for exposure as written, it was not possible to standardise on a single
+-- for exposure as written, it was not possible to standardize on a single
 -- way to make this work within the existing API.
 --
 -- No known users of this part of the extension exist in the wild, and as
@@ -203,8 +205,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceFloatControlsPropertiesKHR',
--- 'ShaderFloatControlsIndependenceKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_float_controls2.hs b/src/Vulkan/Extensions/VK_KHR_shader_float_controls2.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_float_controls2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_float_controls2.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_float_controls2 - device extension
 --
--- == VK_KHR_shader_float_controls2
+-- = VK_KHR_shader_float_controls2
 --
 -- [__Name String__]
 --     @VK_KHR_shader_float_controls2@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
 --
@@ -55,7 +55,7 @@
 --
 -- This extension enables use of the more expressive fast floating-point
 -- math flags in the SPV_KHR_float_controls2 extension. These flags give
--- finer- grained control over which optimisations compilers may apply,
+-- finer- grained control over which optimizations compilers may apply,
 -- potentially speeding up execution while retaining correct results.
 --
 -- The extension also adds control over the fast-math modes to the GLSL
@@ -93,7 +93,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderFloatControls2FeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_float_controls2.hs-boot b/src/Vulkan/Extensions/VK_KHR_shader_float_controls2.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_shader_float_controls2.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_shader_float_controls2.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_float_controls2 - device extension
 --
--- == VK_KHR_shader_float_controls2
+-- = VK_KHR_shader_float_controls2
 --
 -- [__Name String__]
 --     @VK_KHR_shader_float_controls2@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
 --
@@ -55,7 +55,7 @@
 --
 -- This extension enables use of the more expressive fast floating-point
 -- math flags in the SPV_KHR_float_controls2 extension. These flags give
--- finer- grained control over which optimisations compilers may apply,
+-- finer- grained control over which optimizations compilers may apply,
 -- potentially speeding up execution while retaining correct results.
 --
 -- The extension also adds control over the fast-math modes to the GLSL
@@ -93,7 +93,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderFloatControls2FeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_integer_dot_product - device extension
 --
--- == VK_KHR_shader_integer_dot_product
+-- = VK_KHR_shader_integer_dot_product
 --
 -- [__Name String__]
 --     @VK_KHR_shader_integer_dot_product@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -118,19 +120,21 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- KHR suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- KHR suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInputAllKHR DotProductInputAllKHR>
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInputAll DotProductInputAllKHR>
 --
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitKHR DotProductInput4x8BitKHR>
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8Bit DotProductInput4x8BitKHR>
 --
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitPackedKHR DotProductInput4x8BitPackedKHR>
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitPacked DotProductInput4x8BitPackedKHR>
 --
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductKHR DotProductKHR>
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProduct DotProductKHR>
 --
 -- == Version History
 --
@@ -140,8 +144,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR',
--- 'PhysicalDeviceShaderIntegerDotProductPropertiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_maximal_reconvergence.hs b/src/Vulkan/Extensions/VK_KHR_shader_maximal_reconvergence.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_maximal_reconvergence.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_maximal_reconvergence.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_maximal_reconvergence - device extension
 --
--- == VK_KHR_shader_maximal_reconvergence
+-- = VK_KHR_shader_maximal_reconvergence
 --
 -- [__Name String__]
 --     @VK_KHR_shader_maximal_reconvergence@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -32,6 +32,9 @@
 --     -   Alan Baker
 --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_maximal_reconvergence] @alan-baker%0A*Here describe the issue or question you have about the VK_KHR_shader_maximal_reconvergence extension* >
 --
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_shader_maximal_reconvergence.adoc VK_KHR_shader_maximal_reconvergence>
+--
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
@@ -85,10 +88,6 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR'
 --
--- == New SPIR-V Capabilities
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MaximallyReconvergesKHR MaximallyReconvergesKHR>
---
 -- == Version History
 --
 -- -   Revision 1, 2021-11-12 (Alan Baker)
@@ -97,7 +96,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_maximal_reconvergence.hs-boot b/src/Vulkan/Extensions/VK_KHR_shader_maximal_reconvergence.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_shader_maximal_reconvergence.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_shader_maximal_reconvergence.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_maximal_reconvergence - device extension
 --
--- == VK_KHR_shader_maximal_reconvergence
+-- = VK_KHR_shader_maximal_reconvergence
 --
 -- [__Name String__]
 --     @VK_KHR_shader_maximal_reconvergence@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -32,6 +32,9 @@
 --     -   Alan Baker
 --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_maximal_reconvergence] @alan-baker%0A*Here describe the issue or question you have about the VK_KHR_shader_maximal_reconvergence extension* >
 --
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_shader_maximal_reconvergence.adoc VK_KHR_shader_maximal_reconvergence>
+--
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
@@ -85,10 +88,6 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR'
 --
--- == New SPIR-V Capabilities
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MaximallyReconvergesKHR MaximallyReconvergesKHR>
---
 -- == Version History
 --
 -- -   Revision 1, 2021-11-12 (Alan Baker)
@@ -97,7 +96,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_non_semantic_info - device extension
 --
--- == VK_KHR_shader_non_semantic_info
+-- = VK_KHR_shader_non_semantic_info
 --
 -- [__Name String__]
 --     @VK_KHR_shader_non_semantic_info@
@@ -62,7 +62,7 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3 Because
+-- Functionality in this extension is included in core Vulkan 1.3. Because
 -- the extension has no API controlling its functionality, this results
 -- only in a change to the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Extensions table>.
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_quad_control.hs b/src/Vulkan/Extensions/VK_KHR_shader_quad_control.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_quad_control.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_quad_control.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_quad_control - device extension
 --
--- == VK_KHR_shader_quad_control
+-- = VK_KHR_shader_quad_control
 --
 -- [__Name String__]
 --     @VK_KHR_shader_quad_control@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vulkan_memory_model VK_KHR_vulkan_memory_model>
 --     and
@@ -101,7 +101,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderQuadControlFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_quad_control.hs-boot b/src/Vulkan/Extensions/VK_KHR_shader_quad_control.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_shader_quad_control.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_shader_quad_control.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_quad_control - device extension
 --
--- == VK_KHR_shader_quad_control
+-- = VK_KHR_shader_quad_control
 --
 -- [__Name String__]
 --     @VK_KHR_shader_quad_control@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vulkan_memory_model VK_KHR_vulkan_memory_model>
 --     and
@@ -101,7 +101,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderQuadControlFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_relaxed_extended_instruction.hs b/src/Vulkan/Extensions/VK_KHR_shader_relaxed_extended_instruction.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_shader_relaxed_extended_instruction.hs
@@ -0,0 +1,211 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_shader_relaxed_extended_instruction - device extension
+--
+-- = VK_KHR_shader_relaxed_extended_instruction
+--
+-- [__Name String__]
+--     @VK_KHR_shader_relaxed_extended_instruction@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     559
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_relaxed_extended_instruction.html SPV_KHR_relaxed_extended_instruction>
+--
+-- [__Contact__]
+--
+--     -   Nathan Gauër
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_relaxed_extended_instruction] @Keenuts%0A*Here describe the issue or question you have about the VK_KHR_shader_relaxed_extended_instruction extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_shader_relaxed_extended_instruction.adoc VK_KHR_shader_relaxed_extended_instruction>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-01-24
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Alan Baker, Google LLC
+--
+--     -   Nathan Gauër, Google LLC
+--
+-- == Description
+--
+-- This extension allows the use of the
+-- @SPV_KHR_relaxed_extended_instruction@ extension in SPIR-V shader
+-- modules.
+--
+-- It adds a new SPIR-V instruction, which allows some usage of forward
+-- references in non-semantic instruction sets. This extensions interacts
+-- with the @SPV_KHR_non_semantic_info@ extension, hence with
+-- @VK_KHR_shader_non_semantic_info@.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME'
+--
+-- -   'KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-01-24 (Nathan Gauër)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_relaxed_extended_instruction 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_shader_relaxed_extended_instruction  ( PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR(..)
+                                                                     , KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION
+                                                                     , pattern KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION
+                                                                     , KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME
+                                                                     , pattern KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_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_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR))
+-- | VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR - Structure
+-- describing support for VK_KHR_shader_relaxed_extended_instruction an
+-- implementation
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR'
+-- 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. 'PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR'
+-- /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_shader_relaxed_extended_instruction VK_KHR_shader_relaxed_extended_instruction>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR = PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
+  { -- | #features-shaderRelaxedExtendedInstruction#
+    -- @shaderRelaxedExtendedInstruction@ specifies whether the implementation
+    -- supports SPIR-V modules that use the
+    -- @SPV_KHR_relaxed_extended_instruction@ extension.
+    shaderRelaxedExtendedInstruction :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR)
+#endif
+deriving instance Show PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
+
+instance ToCStruct PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderRelaxedExtendedInstruction))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR where
+  peekCStruct p = do
+    shaderRelaxedExtendedInstruction <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
+             (bool32ToBool shaderRelaxedExtendedInstruction)
+
+instance Storable PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR where
+  zero = PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
+           zero
+
+
+type KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION"
+pattern KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION :: forall a . Integral a => a
+pattern KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION = 1
+
+
+type KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME = "VK_KHR_shader_relaxed_extended_instruction"
+
+-- No documentation found for TopLevel "VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME"
+pattern KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME = "VK_KHR_shader_relaxed_extended_instruction"
+
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_relaxed_extended_instruction.hs-boot b/src/Vulkan/Extensions/VK_KHR_shader_relaxed_extended_instruction.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_shader_relaxed_extended_instruction.hs-boot
@@ -0,0 +1,110 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_shader_relaxed_extended_instruction - device extension
+--
+-- = VK_KHR_shader_relaxed_extended_instruction
+--
+-- [__Name String__]
+--     @VK_KHR_shader_relaxed_extended_instruction@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     559
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_relaxed_extended_instruction.html SPV_KHR_relaxed_extended_instruction>
+--
+-- [__Contact__]
+--
+--     -   Nathan Gauër
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_relaxed_extended_instruction] @Keenuts%0A*Here describe the issue or question you have about the VK_KHR_shader_relaxed_extended_instruction extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_shader_relaxed_extended_instruction.adoc VK_KHR_shader_relaxed_extended_instruction>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-01-24
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Alan Baker, Google LLC
+--
+--     -   Nathan Gauër, Google LLC
+--
+-- == Description
+--
+-- This extension allows the use of the
+-- @SPV_KHR_relaxed_extended_instruction@ extension in SPIR-V shader
+-- modules.
+--
+-- It adds a new SPIR-V instruction, which allows some usage of forward
+-- references in non-semantic instruction sets. This extensions interacts
+-- with the @SPV_KHR_non_semantic_info@ extension, hence with
+-- @VK_KHR_shader_non_semantic_info@.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME'
+--
+-- -   'KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-01-24 (Nathan Gauër)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_relaxed_extended_instruction 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_shader_relaxed_extended_instruction  (PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
+
+instance ToCStruct PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
+instance Show PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
+
+instance FromCStruct PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_subgroup_extended_types - device extension
 --
--- == VK_KHR_shader_subgroup_extended_types
+-- = VK_KHR_shader_subgroup_extended_types
 --
 -- [__Name String__]
 --     @VK_KHR_shader_subgroup_extended_types@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -44,7 +44,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_subgroup_extended_types.txt GLSL_EXT_shader_subgroup_extended_types>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GLSL_EXT_shader_subgroup_extended_types.txt GLSL_EXT_shader_subgroup_extended_types>
 --
 -- [__Contributors__]
 --
@@ -73,7 +73,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -102,7 +102,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_rotate.hs b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_rotate.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_rotate.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_rotate.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_subgroup_rotate - device extension
 --
--- == VK_KHR_shader_subgroup_rotate
+-- = VK_KHR_shader_subgroup_rotate
 --
 -- [__Name String__]
 --     @VK_KHR_shader_subgroup_rotate@
@@ -32,6 +32,9 @@
 --     -   Kevin Petit
 --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_subgroup_rotate] @kpet%0A*Here describe the issue or question you have about the VK_KHR_shader_subgroup_rotate extension* >
 --
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_shader_subgroup_rotate.adoc VK_KHR_shader_subgroup_rotate>
+--
 -- [__Last Modified Date__]
 --     2024-01-29
 --
@@ -103,7 +106,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderSubgroupRotateFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_rotate.hs-boot b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_rotate.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_rotate.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_rotate.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_subgroup_rotate - device extension
 --
--- == VK_KHR_shader_subgroup_rotate
+-- = VK_KHR_shader_subgroup_rotate
 --
 -- [__Name String__]
 --     @VK_KHR_shader_subgroup_rotate@
@@ -32,6 +32,9 @@
 --     -   Kevin Petit
 --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_subgroup_rotate] @kpet%0A*Here describe the issue or question you have about the VK_KHR_shader_subgroup_rotate extension* >
 --
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_shader_subgroup_rotate.adoc VK_KHR_shader_subgroup_rotate>
+--
 -- [__Last Modified Date__]
 --     2024-01-29
 --
@@ -103,7 +106,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderSubgroupRotateFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_subgroup_uniform_control_flow - device extension
 --
--- == VK_KHR_shader_subgroup_uniform_control_flow
+-- = VK_KHR_shader_subgroup_uniform_control_flow
 --
 -- [__Name String__]
 --     @VK_KHR_shader_subgroup_uniform_control_flow@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -45,7 +45,7 @@
 --     -   Requires SPIR-V 1.3.
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_subgroupuniform_qualifier.txt GL_EXT_subgroupuniform_qualifier>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GL_EXT_subgroupuniform_qualifier.txt GL_EXT_subgroupuniform_qualifier>
 --
 -- [__Contributors__]
 --
@@ -92,7 +92,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_subgroup_uniform_control_flow - device extension
 --
--- == VK_KHR_shader_subgroup_uniform_control_flow
+-- = VK_KHR_shader_subgroup_uniform_control_flow
 --
 -- [__Name String__]
 --     @VK_KHR_shader_subgroup_uniform_control_flow@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -45,7 +45,7 @@
 --     -   Requires SPIR-V 1.3.
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_subgroupuniform_qualifier.txt GL_EXT_subgroupuniform_qualifier>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GL_EXT_subgroupuniform_qualifier.txt GL_EXT_subgroupuniform_qualifier>
 --
 -- [__Contributors__]
 --
@@ -92,7 +92,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shader_terminate_invocation - device extension
 --
--- == VK_KHR_shader_terminate_invocation
+-- = VK_KHR_shader_terminate_invocation
 --
 -- [__Name String__]
 --     @VK_KHR_shader_terminate_invocation@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -95,9 +95,11 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- KHR suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- KHR suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Version History
 --
@@ -105,7 +107,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shared_presentable_image - device extension
 --
--- == VK_KHR_shared_presentable_image
+-- = VK_KHR_shared_presentable_image
 --
 -- [__Name String__]
 --     @VK_KHR_shared_presentable_image@
@@ -29,7 +29,7 @@
 --     <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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -143,8 +143,8 @@
 -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR' be ignored,
 -- or required to be compatible values?
 --
--- __RESOLVED__: @minImageCount@ must be set to 1, and @presentMode@ should
--- be set to either
+-- __RESOLVED__: @minImageCount@ must be 1, and @presentMode@ should be set
+-- to either
 -- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR'
 -- or
 -- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR'.
@@ -211,7 +211,7 @@
 --
 -- == See Also
 --
--- 'SharedPresentSurfaceCapabilitiesKHR', 'getSwapchainStatusKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_shared_presentable_image - device extension
 --
--- == VK_KHR_shared_presentable_image
+-- = VK_KHR_shared_presentable_image
 --
 -- [__Name String__]
 --     @VK_KHR_shared_presentable_image@
@@ -29,7 +29,7 @@
 --     <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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -143,8 +143,8 @@
 -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR' be ignored,
 -- or required to be compatible values?
 --
--- __RESOLVED__: @minImageCount@ must be set to 1, and @presentMode@ should
--- be set to either
+-- __RESOLVED__: @minImageCount@ must be 1, and @presentMode@ should be set
+-- to either
 -- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR'
 -- or
 -- 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR'.
@@ -211,7 +211,7 @@
 --
 -- == See Also
 --
--- 'SharedPresentSurfaceCapabilitiesKHR', 'getSwapchainStatusKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_spirv_1_4 - device extension
 --
--- == VK_KHR_spirv_1_4
+-- = VK_KHR_spirv_1_4
 --
 -- [__Name String__]
 --     @VK_KHR_spirv_1_4@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
 --
@@ -72,7 +72,7 @@
 -- extensions with the @OpExtension@ opcode, since they are integral parts
 -- of SPIR-V 1.4.
 --
--- SPIR-V 1.4 introduces new floating point execution mode capabilities,
+-- SPIR-V 1.4 introduces new floating-point execution mode capabilities,
 -- also available via @SPV_KHR_float_controls@. Implementations are not
 -- required to support all of these new capabilities; support can be
 -- queried using
@@ -82,7 +82,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Enum Constants
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_storage_buffer_storage_class - device extension
 --
--- == VK_KHR_storage_buffer_storage_class
+-- = VK_KHR_storage_buffer_storage_class
 --
 -- [__Name String__]
 --     @VK_KHR_storage_buffer_storage_class@
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_surface - instance extension
 --
--- == VK_KHR_surface
+-- = VK_KHR_surface
 --
 -- [__Name String__]
 --     @VK_KHR_surface@
@@ -132,14 +132,12 @@
 --
 -- == Examples
 --
--- Note
---
 -- The example code for the @VK_KHR_surface@ and @VK_KHR_swapchain@
 -- extensions was removed from the appendix after revision 1.0.29. This WSI
 -- example code was ported to the cube demo that is shipped with the
 -- official Khronos SDK, and is being kept up-to-date in that location
 -- (see:
--- <https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c>).
+-- <https://github.com/KhronosGroup/Vulkan-Tools/blob/main/cube/cube.c>).
 --
 -- == Issues
 --
@@ -358,13 +356,7 @@
 --
 -- == See Also
 --
--- 'ColorSpaceKHR', 'CompositeAlphaFlagBitsKHR', 'CompositeAlphaFlagsKHR',
--- 'PresentModeKHR', 'SurfaceCapabilitiesKHR', 'SurfaceFormatKHR',
--- 'Vulkan.Extensions.Handles.SurfaceKHR', 'SurfaceTransformFlagBitsKHR',
--- 'destroySurfaceKHR', 'getPhysicalDeviceSurfaceCapabilitiesKHR',
--- 'getPhysicalDeviceSurfaceFormatsKHR',
--- 'getPhysicalDeviceSurfacePresentModesKHR',
--- 'getPhysicalDeviceSurfaceSupportKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -385,6 +377,7 @@
                                                          , PRESENT_MODE_MAILBOX_KHR
                                                          , PRESENT_MODE_FIFO_KHR
                                                          , PRESENT_MODE_FIFO_RELAXED_KHR
+                                                         , PRESENT_MODE_FIFO_LATEST_READY_EXT
                                                          , PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
                                                          , PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR
                                                          , ..
@@ -773,8 +766,8 @@
 -- If @pSurfaceFormats@ is @NULL@, then the number of format pairs
 -- supported for the given @surface@ is returned in @pSurfaceFormatCount@.
 -- Otherwise, @pSurfaceFormatCount@ /must/ point to a variable set by the
--- user to the number of elements in the @pSurfaceFormats@ array, and on
--- return the variable is overwritten with the number of structures
+-- application to the number of elements in the @pSurfaceFormats@ array,
+-- and on return the variable is overwritten with the number of structures
 -- actually written to @pSurfaceFormats@. If the value of
 -- @pSurfaceFormatCount@ is less than the number of format pairs supported,
 -- at most @pSurfaceFormatCount@ structures will be written, and
@@ -910,8 +903,8 @@
 -- If @pPresentModes@ is @NULL@, then the number of presentation modes
 -- supported for the given @surface@ is returned in @pPresentModeCount@.
 -- Otherwise, @pPresentModeCount@ /must/ point to a variable 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
+-- application 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 @pPresentModeCount@ is less
 -- than the number of presentation modes supported, at most
 -- @pPresentModeCount@ values will be written, and
@@ -1029,16 +1022,12 @@
 --
 -- = Description
 --
--- Note
---
 -- Supported usage flags of a presentable image when using
 -- 'PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR' or
 -- 'PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR' presentation mode are
 -- provided by
 -- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.SharedPresentSurfaceCapabilitiesKHR'::@sharedPresentSupportedUsageFlags@.
 --
--- Note
---
 -- Formulas such as min(N, @maxImageCount@) are not correct, since
 -- @maxImageCount@ /may/ be zero.
 --
@@ -1102,7 +1091,8 @@
   , -- | @supportedUsageFlags@ is a bitmask of
     -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' representing
     -- the ways the application /can/ use the presentable images of a swapchain
-    -- created with 'PresentModeKHR' set to 'PRESENT_MODE_IMMEDIATE_KHR',
+    -- created with 'PresentModeKHR' set to
+    -- 'PRESENT_MODE_FIFO_LATEST_READY_EXT', 'PRESENT_MODE_IMMEDIATE_KHR',
     -- 'PRESENT_MODE_MAILBOX_KHR', 'PRESENT_MODE_FIFO_KHR' or
     -- 'PRESENT_MODE_FIFO_RELAXED_KHR' for the surface on the specified device.
     -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'
@@ -1265,14 +1255,14 @@
 -- +----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
 -- | 'PRESENT_MODE_FIFO_RELAXED_KHR'              | 'SurfaceCapabilitiesKHR'::@supportedUsageFlags@                                                                             |
 -- +----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
+-- | 'PRESENT_MODE_FIFO_LATEST_READY_EXT'         | 'SurfaceCapabilitiesKHR'::@supportedUsageFlags@                                                                             |
+-- +----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
 -- | 'PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR'     | 'Vulkan.Extensions.VK_KHR_shared_presentable_image.SharedPresentSurfaceCapabilitiesKHR'::@sharedPresentSupportedUsageFlags@ |
 -- +----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
 -- | 'PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR' | 'Vulkan.Extensions.VK_KHR_shared_presentable_image.SharedPresentSurfaceCapabilitiesKHR'::@sharedPresentSupportedUsageFlags@ |
 -- +----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
 --
--- Presentable image usage queries
---
--- Note
+-- Presentable Image Usage Queries
 --
 -- For reference, the mode indicated by 'PRESENT_MODE_FIFO_KHR' is
 -- equivalent to the behavior of {wgl|glX|egl}SwapBuffers with a swap
@@ -1339,6 +1329,20 @@
 -- queue is non-empty.
 pattern PRESENT_MODE_FIFO_RELAXED_KHR = PresentModeKHR 3
 
+-- | 'PRESENT_MODE_FIFO_LATEST_READY_EXT' specifies that the presentation
+-- engine waits for the next vertical blanking period to update the current
+-- image. Tearing /cannot/ be observed. An internal queue is used to hold
+-- pending presentation requests. New requests are appended to the end of
+-- the queue. At each vertical blanking period, the presentation engine
+-- dequeues all successive requests that are ready to be presented from the
+-- beginning of the queue. If using @VK_GOOGLE_display_timing@ to provide a
+-- target present time, the presentation engine will check the specified
+-- time for each image. If the target present time is less-than or equal-to
+-- the current time, the presentation engine will dequeue the image and
+-- check the next one. The image of the last dequeued request will be
+-- presented. The other dequeued requests will be dropped.
+pattern PRESENT_MODE_FIFO_LATEST_READY_EXT = PresentModeKHR 1000361000
+
 -- | 'PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR' specifies that the
 -- presentation engine and application have concurrent access to a single
 -- image, which is referred to as a /shared presentable image/. The
@@ -1367,6 +1371,7 @@
   , PRESENT_MODE_MAILBOX_KHR
   , PRESENT_MODE_FIFO_KHR
   , PRESENT_MODE_FIFO_RELAXED_KHR
+  , PRESENT_MODE_FIFO_LATEST_READY_EXT
   , PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
   , PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR ::
     PresentModeKHR
@@ -1385,6 +1390,10 @@
   , (PRESENT_MODE_FIFO_KHR, "FIFO_KHR")
   , (PRESENT_MODE_FIFO_RELAXED_KHR, "FIFO_RELAXED_KHR")
   ,
+    ( PRESENT_MODE_FIFO_LATEST_READY_EXT
+    , "FIFO_LATEST_READY_EXT"
+    )
+  ,
     ( PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
     , "SHARED_CONTINUOUS_REFRESH_KHR"
     )
@@ -1415,8 +1424,6 @@
 --
 -- = Description
 --
--- Note
---
 -- In the initial release of the @VK_KHR_surface@ and @VK_KHR_swapchain@
 -- extensions, the token 'COLORSPACE_SRGB_NONLINEAR_KHR' was used. Starting
 -- in the 2016-05-13 updates to the extension branches, matching release
@@ -1424,8 +1431,6 @@
 -- is used instead for consistency with Vulkan naming rules. The older enum
 -- is still available for backwards compatibility.
 --
--- Note
---
 -- In older versions of this extension 'COLOR_SPACE_DISPLAY_P3_LINEAR_EXT'
 -- was misnamed
 -- 'Vulkan.Extensions.VK_EXT_swapchain_colorspace.COLOR_SPACE_DCI_P3_LINEAR_EXT'.
@@ -1433,20 +1438,36 @@
 -- XYZ. The old name is deprecated but is maintained for backwards
 -- compatibility.
 --
+-- In older versions of the @VK_EXT_swapchain_colorspace@ extension,
+-- 'COLOR_SPACE_DOLBYVISION_EXT' was exposed. The intent was to indicate
+-- the presentation engine shall decode an image using the SMPTE ST 2084
+-- Perceptual Quantizer (PQ) EOTF, and then apply a proprietary OOTF to
+-- process the image. However, Dolby Vision profile 8.4 describes an
+-- encoding using the Hybrid Log Gamma (HLG) OETF, and there is no
+-- swapchain extension for signaling Dolby Vision metadata to be used by a
+-- proprietary OOTF. This enum is deprecated but is maintained for
+-- backwards compatibility.
+--
 -- Note
 --
 -- 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 swapchain images /must/
--- have had the appropriate transfer function applied. The color space
--- 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,
--- /can/ be performed by the application shader. This extension defines
--- enums for 'ColorSpaceKHR' that correspond to the following color spaces:
+-- The presentation engine interprets the pixel values of the R, G, and B
+-- components as having been encoded using an appropriate transfer
+-- function. Applications /should/ ensure that the appropriate transfer
+-- function has been applied.
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-output-format-conversion Textures Output Format Conversion>
+-- requires that all implementations implicitly apply the sRGB EOTF-1 on R,
+-- G, and B components when shaders write to an sRGB pixel format image,
+-- which is useful for sRGB color spaces. For sRGB color spaces with other
+-- pixel formats, or other non-linear color spaces, applications /can/
+-- apply the transfer function explicitly in a shader. The A channel is
+-- always interpreted as linearly encoded.
 --
+-- This extension defines enums for 'ColorSpaceKHR' that correspond to the
+-- following color spaces:
+--
 -- +--------------+----------+----------+----------+-------------+------------+
 -- | Name         | Red      | Green    | Blue     | White-point | Transfer   |
 -- |              | Primary  | Primary  | Primary  |             | function   |
@@ -1458,31 +1479,27 @@
 -- |              | 0.320    | 0.690    | 0.060    | 0.3290      |            |
 -- |              |          |          |          | (D65)       |            |
 -- +--------------+----------+----------+----------+-------------+------------+
--- | BT709        | 0.640,   | 0.300,   | 0.150,   | 0.3127,     | ITU (SMPTE |
--- |              | 0.330    | 0.600    | 0.060    | 0.3290      | 170M)      |
+-- | BT709        | 0.640,   | 0.300,   | 0.150,   | 0.3127,     | BT709      |
+-- |              | 0.330    | 0.600    | 0.060    | 0.3290      |            |
 -- |              |          |          |          | (D65)       |            |
 -- +--------------+----------+----------+----------+-------------+------------+
 -- | sRGB         | 0.640,   | 0.300,   | 0.150,   | 0.3127,     | sRGB       |
 -- |              | 0.330    | 0.600    | 0.060    | 0.3290      |            |
 -- |              |          |          |          | (D65)       |            |
 -- +--------------+----------+----------+----------+-------------+------------+
--- | extended     | 0.640,   | 0.300,   | 0.150,   | 0.3127,     | extended   |
--- | sRGB         | 0.330    | 0.600    | 0.060    | 0.3290      | sRGB       |
+-- | extended     | 0.640,   | 0.300,   | 0.150,   | 0.3127,     | scRGB      |
+-- | sRGB         | 0.330    | 0.600    | 0.060    | 0.3290      |            |
 -- |              |          |          |          | (D65)       |            |
 -- +--------------+----------+----------+----------+-------------+------------+
 -- | HDR10_ST2084 | 0.708,   | 0.170,   | 0.131,   | 0.3127,     | ST2084 PQ  |
 -- |              | 0.292    | 0.797    | 0.046    | 0.3290      |            |
 -- |              |          |          |          | (D65)       |            |
 -- +--------------+----------+----------+----------+-------------+------------+
--- | DOLBYVISION  | 0.708,   | 0.170,   | 0.131,   | 0.3127,     | ST2084 PQ  |
--- |              | 0.292    | 0.797    | 0.046    | 0.3290      |            |
--- |              |          |          |          | (D65)       |            |
--- +--------------+----------+----------+----------+-------------+------------+
 -- | HDR10_HLG    | 0.708,   | 0.170,   | 0.131,   | 0.3127,     | HLG        |
 -- |              | 0.292    | 0.797    | 0.046    | 0.3290      |            |
 -- |              |          |          |          | (D65)       |            |
 -- +--------------+----------+----------+----------+-------------+------------+
--- | AdobeRGB     | 0.640,   | 0.210,   | 0.150,   | 0.3127,     | AdobeRGB   |
+-- | Adobe RGB    | 0.640,   | 0.210,   | 0.150,   | 0.3127,     | Adobe RGB  |
 -- |              | 0.330    | 0.710    | 0.060    | 0.3290      |            |
 -- |              |          |          |          | (D65)       |            |
 -- +--------------+----------+----------+----------+-------------+------------+
@@ -1506,8 +1523,6 @@
 -- where L is the linear value of a color component and E is the encoded
 -- value (as stored in the image in memory).
 --
--- Note
---
 -- For most uses, the sRGB OETF is equivalent.
 --
 -- = See Also
@@ -1518,8 +1533,8 @@
 newtype ColorSpaceKHR = ColorSpaceKHR Int32
   deriving newtype (Eq, Ord, Storable, Zero)
 
--- | 'COLOR_SPACE_SRGB_NONLINEAR_KHR' specifies support for the sRGB color
--- space.
+-- | 'COLOR_SPACE_SRGB_NONLINEAR_KHR' specifies support for the images in
+-- sRGB color space, encoded according to the sRGB specification.
 pattern COLOR_SPACE_SRGB_NONLINEAR_KHR = ColorSpaceKHR 0
 
 -- | 'COLOR_SPACE_DISPLAY_NATIVE_AMD' specifies support for the display’s
@@ -1528,7 +1543,8 @@
 pattern COLOR_SPACE_DISPLAY_NATIVE_AMD = ColorSpaceKHR 1000213000
 
 -- | 'COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT' specifies support for the
--- extended sRGB color space to be displayed using an sRGB EOTF.
+-- images in extended sRGB color space, encoded according to the scRGB
+-- specification.
 pattern COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = ColorSpaceKHR 1000104014
 
 -- | 'COLOR_SPACE_PASS_THROUGH_EXT' specifies that color components are used
@@ -1536,57 +1552,56 @@
 -- spaces not described here.
 pattern COLOR_SPACE_PASS_THROUGH_EXT = ColorSpaceKHR 1000104013
 
--- | 'COLOR_SPACE_ADOBERGB_NONLINEAR_EXT' specifies support for the AdobeRGB
--- color space to be displayed using the Gamma 2.2 EOTF.
+-- | 'COLOR_SPACE_ADOBERGB_NONLINEAR_EXT' specifies support for the images in
+-- Adobe RGB color space, encoded according to the Adobe RGB specification
+-- (approximately Gamma 2.2).
 pattern COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = ColorSpaceKHR 1000104012
 
--- | 'COLOR_SPACE_ADOBERGB_LINEAR_EXT' specifies support for the AdobeRGB
--- color space to be displayed using a linear EOTF.
+-- | 'COLOR_SPACE_ADOBERGB_LINEAR_EXT' specifies support for images in Adobe
+-- RGB color space, encoded using a linear transfer function.
 pattern COLOR_SPACE_ADOBERGB_LINEAR_EXT = ColorSpaceKHR 1000104011
 
--- | 'COLOR_SPACE_HDR10_HLG_EXT' specifies support for the HDR10 (BT2020
--- color space) to be displayed using the Hybrid Log Gamma (HLG) EOTF.
+-- | 'COLOR_SPACE_HDR10_HLG_EXT' specifies support for the images in HDR10
+-- (BT2020) color space, encoded according to the Hybrid Log Gamma (HLG)
+-- specification.
 pattern COLOR_SPACE_HDR10_HLG_EXT = ColorSpaceKHR 1000104010
 
--- | 'COLOR_SPACE_DOLBYVISION_EXT' specifies support for the Dolby Vision
--- (BT2020 color space), proprietary encoding, to be displayed using the
--- SMPTE ST2084 EOTF.
+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_DOLBYVISION_EXT"
 pattern COLOR_SPACE_DOLBYVISION_EXT = ColorSpaceKHR 1000104009
 
--- | 'COLOR_SPACE_HDR10_ST2084_EXT' specifies support for the HDR10 (BT2020
--- color) space to be displayed using the SMPTE ST2084 Perceptual Quantizer
--- (PQ) EOTF.
+-- | 'COLOR_SPACE_HDR10_ST2084_EXT' specifies support for the images in HDR10
+-- (BT2020) color space, encoded according to SMPTE ST2084 Perceptual
+-- Quantizer (PQ) specification.
 pattern COLOR_SPACE_HDR10_ST2084_EXT = ColorSpaceKHR 1000104008
 
--- | 'COLOR_SPACE_BT2020_LINEAR_EXT' specifies support for the BT2020 color
--- space to be displayed using a linear EOTF.
+-- | 'COLOR_SPACE_BT2020_LINEAR_EXT' specifies support for the images in
+-- BT2020 color space, encoded using a linear transfer function.
 pattern COLOR_SPACE_BT2020_LINEAR_EXT = ColorSpaceKHR 1000104007
 
--- | 'COLOR_SPACE_BT709_NONLINEAR_EXT' specifies support for the BT709 color
--- space to be displayed using the SMPTE 170M EOTF.
+-- | 'COLOR_SPACE_BT709_NONLINEAR_EXT' specifies support for the images in
+-- BT709 color space, encoded according to the BT709 specification.
 pattern COLOR_SPACE_BT709_NONLINEAR_EXT = ColorSpaceKHR 1000104006
 
--- | 'COLOR_SPACE_BT709_LINEAR_EXT' specifies support for the BT709 color
--- space to be displayed using a linear EOTF.
+-- | 'COLOR_SPACE_BT709_LINEAR_EXT' specifies support for the images in BT709
+-- color space, encoded using a linear transfer function.
 pattern COLOR_SPACE_BT709_LINEAR_EXT = ColorSpaceKHR 1000104005
 
--- | 'COLOR_SPACE_DCI_P3_NONLINEAR_EXT' specifies support for the DCI-P3
--- color space to be displayed using the DCI-P3 EOTF. Note that values in
--- such an image are interpreted as XYZ encoded color data by the
--- presentation engine.
+-- | 'COLOR_SPACE_DCI_P3_NONLINEAR_EXT' specifies support for the images in
+-- DCI-P3 color space, encoded according to the DCI-P3 specification. Note
+-- that values in such an image are interpreted as XYZ encoded color data
+-- by the presentation engine.
 pattern COLOR_SPACE_DCI_P3_NONLINEAR_EXT = ColorSpaceKHR 1000104004
 
--- | 'COLOR_SPACE_DISPLAY_P3_LINEAR_EXT' specifies support for the Display-P3
--- color space to be displayed using a linear EOTF.
+-- | 'COLOR_SPACE_DISPLAY_P3_LINEAR_EXT' specifies support for the images in
+-- Display-P3 color space, encoded using a linear transfer function.
 pattern COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = ColorSpaceKHR 1000104003
 
--- | 'COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT' specifies support for the
--- extended sRGB color space to be displayed using a linear EOTF.
+-- | 'COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT' specifies support for the images
+-- in extended sRGB color space, encoded using a linear transfer function.
 pattern COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = ColorSpaceKHR 1000104002
 
--- | 'COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT' specifies support for the
--- Display-P3 color space to be displayed using an sRGB-like EOTF (defined
--- below).
+-- | 'COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT' specifies support for the images
+-- in Display-P3 color space, encoded using a Display-P3 transfer function.
 pattern COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = ColorSpaceKHR 1000104001
 
 {-# COMPLETE
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_surface - instance extension
 --
--- == VK_KHR_surface
+-- = VK_KHR_surface
 --
 -- [__Name String__]
 --     @VK_KHR_surface@
@@ -132,14 +132,12 @@
 --
 -- == Examples
 --
--- Note
---
 -- The example code for the @VK_KHR_surface@ and @VK_KHR_swapchain@
 -- extensions was removed from the appendix after revision 1.0.29. This WSI
 -- example code was ported to the cube demo that is shipped with the
 -- official Khronos SDK, and is being kept up-to-date in that location
 -- (see:
--- <https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c>).
+-- <https://github.com/KhronosGroup/Vulkan-Tools/blob/main/cube/cube.c>).
 --
 -- == Issues
 --
@@ -358,13 +356,7 @@
 --
 -- == See Also
 --
--- 'ColorSpaceKHR', 'CompositeAlphaFlagBitsKHR', 'CompositeAlphaFlagsKHR',
--- 'PresentModeKHR', 'SurfaceCapabilitiesKHR', 'SurfaceFormatKHR',
--- 'Vulkan.Extensions.Handles.SurfaceKHR', 'SurfaceTransformFlagBitsKHR',
--- 'destroySurfaceKHR', 'getPhysicalDeviceSurfaceCapabilitiesKHR',
--- 'getPhysicalDeviceSurfaceFormatsKHR',
--- 'getPhysicalDeviceSurfacePresentModesKHR',
--- 'getPhysicalDeviceSurfaceSupportKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_surface_protected_capabilities - instance extension
 --
--- == VK_KHR_surface_protected_capabilities
+-- = VK_KHR_surface_protected_capabilities
 --
 -- [__Name String__]
 --     @VK_KHR_surface_protected_capabilities@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 VK_KHR_get_surface_capabilities2>
 --
@@ -100,7 +100,7 @@
 --
 -- == See Also
 --
--- 'SurfaceProtectedCapabilitiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_surface_protected_capabilities - instance extension
 --
--- == VK_KHR_surface_protected_capabilities
+-- = VK_KHR_surface_protected_capabilities
 --
 -- [__Name String__]
 --     @VK_KHR_surface_protected_capabilities@
@@ -21,7 +21,7 @@
 --     Ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 VK_KHR_get_surface_capabilities2>
 --
@@ -100,7 +100,7 @@
 --
 -- == See Also
 --
--- 'SurfaceProtectedCapabilitiesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_swapchain - device extension
 --
--- == VK_KHR_swapchain
+-- = VK_KHR_swapchain
 --
 -- [__Name String__]
 --     @VK_KHR_swapchain@
@@ -103,7 +103,7 @@
 -- -   'queuePresentKHR'
 --
 -- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'acquireNextImage2KHR'
@@ -121,7 +121,7 @@
 -- -   'SwapchainCreateInfoKHR'
 --
 -- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'AcquireNextImageInfoKHR'
@@ -150,7 +150,7 @@
 -- -   'SwapchainCreateFlagBitsKHR'
 --
 -- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'DeviceGroupPresentModeFlagBitsKHR'
@@ -160,7 +160,7 @@
 -- -   'SwapchainCreateFlagsKHR'
 --
 -- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'DeviceGroupPresentModeFlagsKHR'
@@ -192,7 +192,7 @@
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR'
 --
 -- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
@@ -455,10 +455,11 @@
 --
 -- __RESOLVED__: In the advent of UHD and HDR display devices, proper color
 -- space information is vital to the display pipeline represented by the
--- swapchain. The app can discover the supported format\/color-space pairs
--- and select a pair most suited to its rendering needs. Currently only the
--- sRGB color space is supported, future extensions may provide support for
--- more color spaces. See issues 23 and 24.
+-- swapchain. The application can discover the supported
+-- format\/color-space pairs and select a pair most suited to its rendering
+-- needs. Currently only the sRGB color space is supported, future
+-- extensions may provide support for more color spaces. See issues 23 and
+-- 24.
 --
 -- 20) Is there a mechanism to modify or replace an existing swapchain with
 -- one targeting the same surface?
@@ -536,10 +537,11 @@
 -- 'Vulkan.Extensions.Handles.SurfaceKHR' owns the binding of the native
 -- window to the Vulkan driver.
 --
--- 26) How can the client control the way the alpha component of swapchain
--- images is treated by the presentation engine during compositing?
+-- 26) How can the application control the way the alpha component of
+-- swapchain images is treated by the presentation engine during
+-- compositing?
 --
--- __RESOLVED__: We should add new enum values to allow the client to
+-- __RESOLVED__: We should add new enum values to allow the application to
 -- negotiate with the presentation engine on how to treat image alpha
 -- values during the compositing process. Since not all platforms can
 -- practically control this through the Vulkan driver, a value of
@@ -574,14 +576,12 @@
 --
 -- == Examples
 --
--- Note
---
 -- The example code for the @VK_KHR_surface@ and @VK_KHR_swapchain@
 -- extensions was removed from the appendix after revision 1.0.29. This WSI
 -- example code was ported to the cube demo that is shipped with the
 -- official Khronos SDK, and is being kept up-to-date in that location
 -- (see:
--- <https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c>).
+-- <https://github.com/KhronosGroup/Vulkan-Tools/blob/main/cube/cube.c>).
 --
 -- == Version History
 --
@@ -1064,11 +1064,7 @@
 --
 -- == See Also
 --
--- 'PresentInfoKHR', 'SwapchainCreateFlagBitsKHR',
--- 'SwapchainCreateFlagsKHR', 'SwapchainCreateInfoKHR',
--- 'Vulkan.Extensions.Handles.SwapchainKHR', 'acquireNextImageKHR',
--- 'createSwapchainKHR', 'destroySwapchainKHR', 'getSwapchainImagesKHR',
--- 'queuePresentKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -1372,8 +1368,6 @@
 -- newly created swapchain will automatically acquire exclusive full-screen
 -- access from @pCreateInfo->oldSwapchain@.
 --
--- Note
---
 -- This implicit transfer is intended to avoid exiting and entering
 -- full-screen exclusive mode, which may otherwise cause unwanted visual
 -- updates to the display.
@@ -1385,12 +1379,10 @@
 -- this occurs, 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'
 -- will be returned.
 --
--- Note
---
 -- In particular, it will fail if the @imageExtent@ member of @pCreateInfo@
 -- does not match the extents of the monitor. Other reasons for failure may
--- include the app not being set as high-dpi aware, or if the physical
--- device and monitor are not compatible in this mode.
+-- include the application not being set as high-dpi aware, or if the
+-- physical device and monitor are not compatible in this mode.
 --
 -- If the @pNext@ chain of 'SwapchainCreateInfoKHR' includes a
 -- 'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV'
@@ -1629,11 +1621,11 @@
 --
 -- If @pSwapchainImages@ is @NULL@, then the number of presentable images
 -- for @swapchain@ is returned in @pSwapchainImageCount@. Otherwise,
--- @pSwapchainImageCount@ /must/ point to a variable set by the user to the
--- number of elements in the @pSwapchainImages@ array, and on return the
--- variable is overwritten with the number of structures actually written
--- to @pSwapchainImages@. If the value of @pSwapchainImageCount@ is less
--- than the number of presentable images for @swapchain@, at most
+-- @pSwapchainImageCount@ /must/ point to a variable set by the application
+-- to the number of elements in the @pSwapchainImages@ array, and on return
+-- the variable is overwritten with the number of structures actually
+-- written to @pSwapchainImages@. If the value of @pSwapchainImageCount@ is
+-- less than the number of presentable images for @swapchain@, at most
 -- @pSwapchainImageCount@ 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
@@ -1781,25 +1773,29 @@
 --     be in the retired state
 --
 -- -   #VUID-vkAcquireNextImageKHR-semaphore-01286# If @semaphore@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ be unsignaled
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be unsignaled
 --
 -- -   #VUID-vkAcquireNextImageKHR-semaphore-01779# If @semaphore@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ not have any
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not have any
 --     uncompleted signal or wait operations pending
 --
 -- -   #VUID-vkAcquireNextImageKHR-fence-01287# If @fence@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ be unsignaled and
---     /must/ not be associated with any other queue command that has not
---     yet completed execution on that queue
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ be
+--     unsignaled
 --
+-- -   #VUID-vkAcquireNextImageKHR-fence-10066# If @fence@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ not be
+--     associated with any other queue command that has not yet completed
+--     execution on that queue
+--
 -- -   #VUID-vkAcquireNextImageKHR-semaphore-01780# @semaphore@ and @fence@
 --     /must/ not both be equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'
 --
 -- -   #VUID-vkAcquireNextImageKHR-surface-07783# If
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#swapchain-acquire-forward-progress forward progress>
 --     cannot be guaranteed for the @surface@ used to create the
---     @swapchain@ member of @pAcquireInfo@, the @timeout@ member of
---     @pAcquireInfo@ /must/ not be @UINT64_MAX@
+--     @swapchain@ member of @pAcquireInfo@, @timeout@ /must/ not be
+--     @UINT64_MAX@
 --
 -- -   #VUID-vkAcquireNextImageKHR-semaphore-03265# @semaphore@ /must/ have
 --     a 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of
@@ -1926,42 +1922,54 @@
 --
 -- = Description
 --
--- Note
---
 -- There is no requirement for an application to present images in the same
 -- order that they were acquired - applications can arbitrarily present any
 -- image that is currently acquired.
 --
--- == Valid Usage
+-- The origin of the native orientation of the surface coordinate system is
+-- not specified in the Vulkan specification; it depends on the platform.
+-- For most platforms the origin is by default upper-left, meaning the
+-- pixel of the presented 'Vulkan.Core10.Handles.Image' at coordinates
+-- (0,0) would appear at the upper left pixel of the platform surface
+-- (assuming
+-- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
+-- and the display standing the right way up).
 --
--- -   #VUID-vkQueuePresentKHR-pSwapchains-01292# Each element of
---     @pSwapchains@ member of @pPresentInfo@ /must/ be a swapchain that is
---     created for a surface for which presentation is supported from
---     @queue@ as determined using a call to
---     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
+-- The result codes 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DATE_KHR' and
+-- 'Vulkan.Core10.Enums.Result.SUBOPTIMAL_KHR' have the same meaning when
+-- returned by 'queuePresentKHR' as they do when returned by
+-- 'acquireNextImageKHR'. If any @swapchain@ member of @pPresentInfo@ was
+-- created with
+-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT',
+-- 'Vulkan.Core10.Enums.Result.ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT'
+-- will be returned if that swapchain does not have exclusive full-screen
+-- access, possibly for implementation-specific reasons outside of the
+-- application’s control. If multiple swapchains are presented, the result
+-- code is determined by applying the following rules in order:
 --
--- -   #VUID-vkQueuePresentKHR-pSwapchains-01293# If more than one member
---     of @pSwapchains@ was created from a display surface, all display
---     surfaces referenced that refer to the same display /must/ use the
---     same display mode
+-- -   If the device is lost,
+--     'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' is returned.
 --
--- -   #VUID-vkQueuePresentKHR-pWaitSemaphores-01294# When a semaphore wait
---     operation referring to a binary semaphore defined by the elements of
---     the @pWaitSemaphores@ member of @pPresentInfo@ executes on @queue@,
---     there /must/ be no other queues waiting on the same semaphore
+-- -   If any of the target surfaces are no longer available the error
+--     'Vulkan.Core10.Enums.Result.ERROR_SURFACE_LOST_KHR' is returned.
 --
--- -   #VUID-vkQueuePresentKHR-pWaitSemaphores-03267# All elements of the
---     @pWaitSemaphores@ member of @pPresentInfo@ /must/ be created with a
---     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of
---     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY'
+-- -   If any of the presents would have a result of
+--     'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DATE_KHR' if issued
+--     separately then 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DATE_KHR'
+--     is returned.
 --
--- -   #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
---     <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
+-- -   If any of the presents would have a result of
+--     'Vulkan.Core10.Enums.Result.ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT'
+--     if issued separately then
+--     'Vulkan.Core10.Enums.Result.ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT'
+--     is returned.
 --
+-- -   If any of the presents would have a result of
+--     'Vulkan.Core10.Enums.Result.SUBOPTIMAL_KHR' if issued separately
+--     then 'Vulkan.Core10.Enums.Result.SUBOPTIMAL_KHR' is returned.
+--
+-- -   Otherwise 'Vulkan.Core10.Enums.Result.SUCCESS' is returned.
+--
 -- Any writes to memory backing the images referenced by the
 -- @pImageIndices@ and @pSwapchains@ members of @pPresentInfo@, that are
 -- available before 'queuePresentKHR' is executed, are automatically made
@@ -1970,23 +1978,38 @@
 -- signal operation, and happens-before the presentation engine accesses
 -- the image.
 --
+-- Presentation is a read-only operation that will not affect the content
+-- of the presentable images. Upon reacquiring the image and transitioning
+-- it away from the
+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR' layout,
+-- the contents will be the same as they were prior to transitioning the
+-- image to the present source layout and presenting it. However, if a
+-- mechanism other than Vulkan is used to modify the platform window
+-- associated with the swapchain, the content of all presentable images in
+-- the swapchain becomes undefined.
+--
+-- Calls to 'queuePresentKHR' /may/ block, but /must/ return in finite
+-- time. The processing of the presentation happens in issue order with
+-- other queue operations, but semaphores /must/ be used to ensure that
+-- prior rendering and other commands in the specified queue complete
+-- before the presentation begins. The presentation command itself does not
+-- delay processing of subsequent commands on the queue. However,
+-- presentation requests sent to a particular queue are always performed in
+-- order. Exact presentation timing is controlled by the semantics of the
+-- presentation engine and native platform in use.
+--
+-- If an image is presented to a swapchain created from a display surface,
+-- the mode of the associated display will be updated, if necessary, to
+-- match the mode specified when creating the display surface. The mode
+-- switch and presentation of the specified image will be performed as one
+-- atomic operation.
+--
 -- Queueing an image for presentation defines a set of /queue operations/,
 -- including waiting on the semaphores and submitting a presentation
 -- request to the presentation engine. However, the scope of this set of
 -- queue operations does not include the actual processing of the image by
 -- the presentation engine.
 --
--- Note
---
--- The origin of the native orientation of the surface coordinate system is
--- not specified in the Vulkan specification; it depends on the platform.
--- For most platforms the origin is by default upper-left, meaning the
--- pixel of the presented 'Vulkan.Core10.Handles.Image' at coordinates
--- (0,0) would appear at the upper left pixel of the platform surface
--- (assuming
--- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',
--- and the display standing the right way up).
---
 -- If 'queuePresentKHR' fails to enqueue the corresponding set of queue
 -- operations, it /may/ return
 -- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' or
@@ -2007,16 +2030,56 @@
 -- wait operation specified in 'PresentInfoKHR' will execute when the
 -- corresponding queue operation is complete.
 --
--- Calls to 'queuePresentKHR' /may/ block, but /must/ return in finite
--- time.
+-- 'queuePresentKHR' releases the acquisition of the images referenced by
+-- @imageIndices@. The queue family corresponding to the queue
+-- 'queuePresentKHR' is executed on /must/ have ownership of the presented
+-- images as defined in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-sharing Resource Sharing>.
+-- 'queuePresentKHR' does not alter the queue family ownership, but the
+-- presented images /must/ not be used again before they have been
+-- reacquired using 'acquireNextImageKHR'.
 --
--- If any @swapchain@ member of @pPresentInfo@ was created with
--- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT',
--- 'Vulkan.Core10.Enums.Result.ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT'
--- will be returned if that swapchain does not have exclusive full-screen
--- access, possibly for implementation-specific reasons outside of the
--- application’s control.
+-- The application /can/ continue to present any acquired images from a
+-- retired swapchain as long as the swapchain has not entered a state that
+-- causes 'queuePresentKHR' to return
+-- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DATE_KHR'.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkQueuePresentKHR-pSwapchains-01292# Each element of
+--     @pSwapchains@ member of @pPresentInfo@ /must/ be a swapchain that is
+--     created for a surface for which presentation is supported from
+--     @queue@ as determined using a call to
+--     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
+--
+-- -   #VUID-vkQueuePresentKHR-pSwapchains-01293# If more than one member
+--     of @pSwapchains@ was created from a display surface, all display
+--     surfaces referenced that refer to the same display /must/ use the
+--     same display mode
+--
+-- -   #VUID-vkQueuePresentKHR-pSwapchains-10285# If more than one member
+--     of @pSwapchains@ was created from a display surface, all display
+--     surfaces referenced that refer to the same display /must/ use the
+--     same
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#wsi-displaySurfaceStereoType stereoType>
+--
+-- -   #VUID-vkQueuePresentKHR-pWaitSemaphores-01294# When a semaphore wait
+--     operation referring to a binary semaphore defined by the elements of
+--     the @pWaitSemaphores@ member of @pPresentInfo@ executes on @queue@,
+--     there /must/ be no other queues waiting on the same semaphore
+--
+-- -   #VUID-vkQueuePresentKHR-pWaitSemaphores-03267# All elements of the
+--     @pWaitSemaphores@ member of @pPresentInfo@ /must/ be created with a
+--     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of
+--     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY'
+--
+-- -   #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
+--     <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
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkQueuePresentKHR-queue-parameter# @queue@ /must/ be a valid
@@ -2368,8 +2431,8 @@
 --
 -- If @pRects@ is @NULL@, then the number of rectangles used when
 -- presenting the given @surface@ is returned in @pRectCount@. Otherwise,
--- @pRectCount@ /must/ point to a variable set by the user to the number of
--- elements in the @pRects@ array, and on return the variable is
+-- @pRectCount@ /must/ point to a variable set by the application to the
+-- number of elements in the @pRects@ array, and on return the variable is
 -- overwritten with the number of structures actually written to @pRects@.
 -- If the value of @pRectCount@ is less than the number of rectangles, at
 -- most @pRectCount@ structures will be written, and
@@ -2495,8 +2558,6 @@
 -- fails. The application /can/ destroy @oldSwapchain@ to free all memory
 -- associated with @oldSwapchain@.
 --
--- Note
---
 -- Multiple retired swapchains /can/ be associated with the same
 -- 'Vulkan.Extensions.Handles.SurfaceKHR' through multiple uses of
 -- @oldSwapchain@ that outnumber calls to 'destroySwapchainKHR'.
@@ -2528,6 +2589,12 @@
 --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceCapabilitiesKHR'
 --     for the surface if the returned @maxImageCount@ is not zero
 --
+-- -   #VUID-VkSwapchainCreateInfoKHR-swapchainMaintenance1-10155# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-swapchainMaintenance1 swapchainMaintenance1>
+--     feature is not enabled, then the @pNext@ chain /must/ not include a
+--     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT'
+--     structure
+--
 -- -   #VUID-VkSwapchainCreateInfoKHR-presentMode-02839# If @presentMode@
 --     is not
 --     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR'
@@ -2579,6 +2646,11 @@
 --     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceCapabilities2KHR'
 --     for the surface and @presentMode@
 --
+-- -   #VUID-VkSwapchainCreateInfoKHR-swapchainMaintenance1-10157# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-swapchainMaintenance1 swapchainMaintenance1>
+--     feature is not enabled, then @flags@ /must/ not include
+--     'SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT'
+--
 -- -   #VUID-VkSwapchainCreateInfoKHR-imageExtent-01689# @imageExtent@
 --     members @width@ and @height@ /must/ both be non-zero
 --
@@ -2591,7 +2663,9 @@
 --     for the surface
 --
 -- -   #VUID-VkSwapchainCreateInfoKHR-presentMode-01427# If @presentMode@
---     is 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_IMMEDIATE_KHR',
+--     is
+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_LATEST_READY_EXT',
+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_IMMEDIATE_KHR',
 --     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR',
 --     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_KHR' or
 --     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_RELAXED_KHR',
@@ -2656,6 +2730,12 @@
 --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfacePresentModesKHR'
 --     for the surface
 --
+-- -   #VUID-VkSwapchainCreateInfoKHR-presentModeFifoLatestReady-10161# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentModeFifoLatestReady presentModeFifoLatestReady>
+--     feature is not enabled, @presentMode@ /must/ not be
+--     'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_FIFO_LATEST_READY_EXT'
+--
 -- -   #VUID-VkSwapchainCreateInfoKHR-physicalDeviceCount-01429# If the
 --     logical device was created with
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.DeviceGroupDeviceCreateInfo'::@physicalDeviceCount@
@@ -2833,8 +2913,6 @@
     -- surface’s @currentExtent@ as returned by
     -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceCapabilitiesKHR'.
     --
-    -- Note
-    --
     -- On some platforms, it is normal that @maxImageExtent@ /may/ become
     -- @(0, 0)@, for example when the window is minimized. In such a case, it
     -- is not possible to create a swapchain due to the Valid Usage
@@ -2878,23 +2956,21 @@
     -- discard rendering operations that affect regions of the surface that are
     -- not visible.
     --
-    -- -   If set to 'Vulkan.Core10.FundamentalTypes.TRUE', the presentable
-    --     images associated with the swapchain /may/ not own all of their
-    --     pixels. Pixels in the presentable images that correspond to regions
-    --     of the target surface obscured by another window on the desktop, or
-    --     subject to some other clipping mechanism will have undefined content
-    --     when read back. Fragment shaders /may/ not execute for these pixels,
-    --     and thus any side effects they would have had will not occur.
-    --     Setting 'Vulkan.Core10.FundamentalTypes.TRUE' does not guarantee any
-    --     clipping will occur, but allows more efficient presentation methods
-    --     to be used on some platforms.
+    -- -   If @clipped@ is 'Vulkan.Core10.FundamentalTypes.TRUE', the
+    --     presentable images associated with the swapchain /may/ not own all
+    --     of their pixels. Pixels in the presentable images that correspond to
+    --     regions of the target surface obscured by another window on the
+    --     desktop, or subject to some other clipping mechanism will have
+    --     undefined content when read back. Fragment shaders /may/ not execute
+    --     for these pixels, and thus any side effects they would have had will
+    --     not occur. Setting 'Vulkan.Core10.FundamentalTypes.TRUE' does not
+    --     guarantee any clipping will occur, but allows more efficient
+    --     presentation methods to be used on some platforms.
     --
-    -- -   If set to 'Vulkan.Core10.FundamentalTypes.FALSE', presentable images
-    --     associated with the swapchain will own all of the pixels they
+    -- -   If @clipped@ is 'Vulkan.Core10.FundamentalTypes.FALSE', presentable
+    --     images associated with the swapchain will own all of the pixels they
     --     contain.
     --
-    --     Note
-    --
     --     Applications /should/ set this value to
     --     'Vulkan.Core10.FundamentalTypes.TRUE' if they do not expect to read
     --     back the content of presentable images before presenting them or
@@ -3052,16 +3128,14 @@
 -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
 -- layout.
 --
--- Note
---
 -- When transitioning the image to
 -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR' or
 -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR', there is
 -- no need to delay subsequent processing, or perform any visibility
 -- operations (as 'queuePresentKHR' performs automatic visibility
 -- operations). To achieve this, the @dstAccessMask@ member of the
--- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' /should/ be set to @0@,
--- and the @dstStageMask@ parameter /should/ be set to
+-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' /should/ be @0@, and the
+-- @dstStageMask@ parameter /should/ be
 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT'.
 --
 -- == Valid Usage
@@ -3086,6 +3160,12 @@
 --     feature is not enabled, each @presentIds@ entry in that structure
 --     /must/ be NULL
 --
+-- -   #VUID-VkPresentInfoKHR-swapchainMaintenance1-10158# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-swapchainMaintenance1 swapchainMaintenance1>
+--     feature is not enabled, then the @pNext@ chain /must/ not include a
+--     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentFenceInfoEXT'
+--     structure
+--
 -- -   #VUID-VkPresentInfoKHR-pSwapchains-09199# If any element of the
 --     @pSwapchains@ array has been created with
 --     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT',
@@ -3500,8 +3580,6 @@
 -- If 'acquireNextImageKHR' is used, the device mask is considered to
 -- include all physical devices in the logical device.
 --
--- Note
---
 -- 'acquireNextImage2KHR' signals at most one semaphore, even if the
 -- application requests waiting for multiple physical devices to be ready
 -- via the @deviceMask@. However, only a single physical device /can/ wait
@@ -3518,16 +3596,21 @@
 --     not be in the retired state
 --
 -- -   #VUID-VkAcquireNextImageInfoKHR-semaphore-01288# If @semaphore@ is
---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ be unsignaled
+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be
+--     unsignaled
 --
 -- -   #VUID-VkAcquireNextImageInfoKHR-semaphore-01781# If @semaphore@ is
---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ not have any
+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not have any
 --     uncompleted signal or wait operations pending
 --
 -- -   #VUID-VkAcquireNextImageInfoKHR-fence-01289# If @fence@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' it /must/ be unsignaled and
---     /must/ not be associated with any other queue command that has not
---     yet completed execution on that queue
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ be
+--     unsignaled
+--
+-- -   #VUID-VkAcquireNextImageInfoKHR-fence-10067# If @fence@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ not be
+--     associated with any other queue command that has not yet completed
+--     execution on that queue
 --
 -- -   #VUID-VkAcquireNextImageInfoKHR-semaphore-01782# @semaphore@ and
 --     @fence@ /must/ not both be equal to
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_swapchain - device extension
 --
--- == VK_KHR_swapchain
+-- = VK_KHR_swapchain
 --
 -- [__Name String__]
 --     @VK_KHR_swapchain@
@@ -103,7 +103,7 @@
 -- -   'queuePresentKHR'
 --
 -- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'acquireNextImage2KHR'
@@ -121,7 +121,7 @@
 -- -   'SwapchainCreateInfoKHR'
 --
 -- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'AcquireNextImageInfoKHR'
@@ -150,7 +150,7 @@
 -- -   'SwapchainCreateFlagBitsKHR'
 --
 -- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'DeviceGroupPresentModeFlagBitsKHR'
@@ -160,7 +160,7 @@
 -- -   'SwapchainCreateFlagsKHR'
 --
 -- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'DeviceGroupPresentModeFlagsKHR'
@@ -192,7 +192,7 @@
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR'
 --
 -- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
@@ -455,10 +455,11 @@
 --
 -- __RESOLVED__: In the advent of UHD and HDR display devices, proper color
 -- space information is vital to the display pipeline represented by the
--- swapchain. The app can discover the supported format\/color-space pairs
--- and select a pair most suited to its rendering needs. Currently only the
--- sRGB color space is supported, future extensions may provide support for
--- more color spaces. See issues 23 and 24.
+-- swapchain. The application can discover the supported
+-- format\/color-space pairs and select a pair most suited to its rendering
+-- needs. Currently only the sRGB color space is supported, future
+-- extensions may provide support for more color spaces. See issues 23 and
+-- 24.
 --
 -- 20) Is there a mechanism to modify or replace an existing swapchain with
 -- one targeting the same surface?
@@ -536,10 +537,11 @@
 -- 'Vulkan.Extensions.Handles.SurfaceKHR' owns the binding of the native
 -- window to the Vulkan driver.
 --
--- 26) How can the client control the way the alpha component of swapchain
--- images is treated by the presentation engine during compositing?
+-- 26) How can the application control the way the alpha component of
+-- swapchain images is treated by the presentation engine during
+-- compositing?
 --
--- __RESOLVED__: We should add new enum values to allow the client to
+-- __RESOLVED__: We should add new enum values to allow the application to
 -- negotiate with the presentation engine on how to treat image alpha
 -- values during the compositing process. Since not all platforms can
 -- practically control this through the Vulkan driver, a value of
@@ -574,14 +576,12 @@
 --
 -- == Examples
 --
--- Note
---
 -- The example code for the @VK_KHR_surface@ and @VK_KHR_swapchain@
 -- extensions was removed from the appendix after revision 1.0.29. This WSI
 -- example code was ported to the cube demo that is shipped with the
 -- official Khronos SDK, and is being kept up-to-date in that location
 -- (see:
--- <https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c>).
+-- <https://github.com/KhronosGroup/Vulkan-Tools/blob/main/cube/cube.c>).
 --
 -- == Version History
 --
@@ -1064,11 +1064,7 @@
 --
 -- == See Also
 --
--- 'PresentInfoKHR', 'SwapchainCreateFlagBitsKHR',
--- 'SwapchainCreateFlagsKHR', 'SwapchainCreateInfoKHR',
--- 'Vulkan.Extensions.Handles.SwapchainKHR', 'acquireNextImageKHR',
--- 'createSwapchainKHR', 'destroySwapchainKHR', 'getSwapchainImagesKHR',
--- 'queuePresentKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_swapchain_mutable_format - device extension
 --
--- == VK_KHR_swapchain_mutable_format
+-- = VK_KHR_swapchain_mutable_format
 --
 -- [__Name String__]
 --     @VK_KHR_swapchain_mutable_format@
@@ -27,13 +27,13 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance2 VK_KHR_maintenance2>
 --          or
 --         
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --     and
 --         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_image_format_list VK_KHR_image_format_list>
 --          or
 --         
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Version 1.2>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__Contact__]
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_synchronization2 - device extension
 --
--- == VK_KHR_synchronization2
+-- = VK_KHR_synchronization2
 --
 -- [__Name String__]
 --     @VK_KHR_synchronization2@
@@ -23,16 +23,16 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
---     -   Interacts with VK_AMD_buffer_marker
---
 --     -   Interacts with VK_EXT_blend_operation_advanced
 --
 --     -   Interacts with VK_EXT_conditional_rendering
 --
+--     -   Interacts with VK_EXT_device_generated_commands
+--
 --     -   Interacts with VK_EXT_fragment_density_map
 --
 --     -   Interacts with VK_EXT_mesh_shader
@@ -45,8 +45,6 @@
 --
 --     -   Interacts with VK_KHR_ray_tracing_pipeline
 --
---     -   Interacts with VK_NV_device_diagnostic_checkpoints
---
 --     -   Interacts with VK_NV_device_generated_commands
 --
 --     -   Interacts with VK_NV_mesh_shader
@@ -134,10 +132,6 @@
 -- -   Queue family ownership transfer parameters are simplified in some
 --     cases.
 --
--- -   Where two synchronization commands need to be matched up (queue
---     transfer operations, events), the dependency information specified
---     in each place must now match completely for consistency.
---
 -- -   Extensions with commands or functions with a
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags' or
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
@@ -174,18 +168,6 @@
 --
 -- -   'queueSubmit2KHR'
 --
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker VK_AMD_buffer_marker>
--- is supported:
---
--- -   'cmdWriteBufferMarker2AMD'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>
--- is supported:
---
--- -   'getQueueCheckpointData2NV'
---
 -- == New Structures
 --
 -- -   'BufferMemoryBarrier2KHR'
@@ -211,17 +193,6 @@
 --
 --     -   'MemoryBarrier2KHR'
 --
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>
--- is supported:
---
--- -   'CheckpointData2NV'
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':
---
---     -   'QueueFamilyCheckpointProperties2NV'
---
 -- == New Enums
 --
 -- -   'AccessFlagBits2KHR'
@@ -304,6 +275,21 @@
 --     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'
 --
 -- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':
+--
+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT'
+--
+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
+--
+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_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:
 --
@@ -382,16 +368,6 @@
 --     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
 --
 -- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>
--- is supported:
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV'
---
--- 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:
 --
@@ -449,9 +425,11 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- KHR suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- KHR suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Examples
 --
@@ -466,15 +444,7 @@
 --
 -- == See Also
 --
--- 'AccessFlagBits2KHR', 'AccessFlags2KHR', 'BufferMemoryBarrier2KHR',
--- 'CommandBufferSubmitInfoKHR', 'DependencyInfoKHR',
--- 'Vulkan.Core10.FundamentalTypes.Flags64', 'ImageMemoryBarrier2KHR',
--- 'MemoryBarrier2KHR', 'PhysicalDeviceSynchronization2FeaturesKHR',
--- 'PipelineStageFlagBits2KHR', 'PipelineStageFlags2KHR',
--- 'SemaphoreSubmitInfoKHR', 'SubmitFlagBitsKHR', 'SubmitFlagsKHR',
--- 'SubmitInfo2KHR', 'cmdPipelineBarrier2KHR', 'cmdResetEvent2KHR',
--- 'cmdSetEvent2KHR', 'cmdWaitEvents2KHR', 'cmdWriteTimestamp2KHR',
--- 'queueSubmit2KHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -483,9 +453,7 @@
 --
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
-module Vulkan.Extensions.VK_KHR_synchronization2  ( cmdWriteBufferMarker2AMD
-                                                  , getQueueCheckpointData2NV
-                                                  , pattern STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR
+module Vulkan.Extensions.VK_KHR_synchronization2  ( pattern STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR
                                                   , pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR
                                                   , pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR
                                                   , pattern STRUCTURE_TYPE_DEPENDENCY_INFO_KHR
@@ -512,8 +480,6 @@
                                                   , cmdPipelineBarrier2KHR
                                                   , queueSubmit2KHR
                                                   , cmdWriteTimestamp2KHR
-                                                  , QueueFamilyCheckpointProperties2NV(..)
-                                                  , CheckpointData2NV(..)
                                                   , AccessFlags2KHR
                                                   , PipelineStageFlags2KHR
                                                   , SubmitFlagsKHR
@@ -532,77 +498,29 @@
                                                   , pattern KHR_SYNCHRONIZATION_2_SPEC_VERSION
                                                   , KHR_SYNCHRONIZATION_2_EXTENSION_NAME
                                                   , pattern KHR_SYNCHRONIZATION_2_EXTENSION_NAME
+                                                  , pattern PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT
+                                                  , pattern ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT
+                                                  , pattern ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT
                                                   ) where
 
-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.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 Data.Vector (generateM)
-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 Control.Monad.Trans.Cont (ContT(..))
-import Data.Vector (Vector)
-import Vulkan.CStruct.Utils (advancePtrBytes)
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdPipelineBarrier2)
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdResetEvent2)
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdSetEvent2)
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdWaitEvents2)
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdWriteTimestamp2)
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (queueSubmit2)
-import Vulkan.NamedType ((:::))
 import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2)
 import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)
-import Vulkan.Core10.Handles (Buffer)
-import Vulkan.Core10.Handles (Buffer(..))
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (BufferMemoryBarrier2)
-import Vulkan.Core10.Handles (CommandBuffer)
-import Vulkan.Core10.Handles (CommandBuffer(..))
-import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (CommandBufferSubmitInfo)
-import Vulkan.Core10.Handles (CommandBuffer_T)
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo)
-import Vulkan.Dynamic (DeviceCmds(pVkCmdWriteBufferMarker2AMD))
-import Vulkan.Dynamic (DeviceCmds(pVkGetQueueCheckpointData2NV))
-import Vulkan.Core10.FundamentalTypes (DeviceSize)
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (ImageMemoryBarrier2)
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (MemoryBarrier2)
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features)
 import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2)
-import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(..))
 import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
-import Vulkan.Core10.Handles (Queue)
-import Vulkan.Core10.Handles (Queue(..))
-import Vulkan.Core10.Handles (Queue(Queue))
-import Vulkan.Core10.Handles (Queue_T)
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SemaphoreSubmitInfo)
-import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlagBits)
 import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlags)
 import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SubmitInfo2)
@@ -631,311 +549,16 @@
 import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)
 import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_NONE))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEPENDENCY_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_BARRIER_2))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBMIT_INFO_2))
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdWriteBufferMarker2AMD
-  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> Buffer -> DeviceSize -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags2 -> Buffer -> DeviceSize -> Word32 -> IO ()
-
--- | vkCmdWriteBufferMarker2AMD - Execute a pipelined write of a marker value
--- into a buffer
---
--- = Description
---
--- The command will write the 32-bit marker value into the buffer only
--- after all preceding commands have finished executing up to at least the
--- specified pipeline stage. This includes the completion of other
--- preceding 'cmdWriteBufferMarker2AMD' commands so long as their specified
--- pipeline stages occur either at the same time or earlier than this
--- command’s specified @stage@.
---
--- While consecutive buffer marker writes with the same @stage@ parameter
--- implicitly complete in submission order, memory and execution
--- dependencies between buffer marker writes and other operations /must/
--- still be explicitly ordered using synchronization commands. The access
--- scope for buffer marker writes falls under the
--- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT', and the
--- pipeline stages for identifying the synchronization scope /must/ include
--- both @stage@ and
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'.
---
--- Note
---
--- Similar to
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',
--- if an implementation is unable to write a marker at any specific
--- pipeline stage, it /may/ instead do so at any logically later stage.
---
--- Note
---
--- Implementations /may/ only support a limited number of pipelined marker
--- write operations in flight at a given time. Thus an excessive number of
--- marker write operations /may/ degrade command execution performance.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03929# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is not enabled, @stage@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03930# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is not enabled, @stage@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'
---     or
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03931# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
---     feature is not enabled, @stage@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03932# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
---     feature is not enabled, @stage@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03933# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
---     feature is not enabled, @stage@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03934# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is not enabled, @stage@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03935# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is not enabled, @stage@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-07316# 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, @stage@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---
--- -   #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_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-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>
---     are enabled, @stage@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893# The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>
---     feature /must/ be enabled
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03894# @stage@ /must/ include
---     only a single pipeline stage
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03895# @stage@ /must/ include
---     only stages that are valid for the queue family that was used to
---     create the command pool that @commandBuffer@ was allocated from
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896# @dstOffset@ /must/
---     be less than or equal to the size of @dstBuffer@ minus @4@
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897# @dstBuffer@ /must/
---     have been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
---     usage flag
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898# If @dstBuffer@ is
---     non-sparse then it /must/ be bound completely and contiguously to a
---     single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899# @dstOffset@ /must/
---     be a multiple of @4@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-parameter# @stage@ /must/ be
---     a valid combination of
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'
---     values
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameter# @dstBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-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-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support transfer, graphics, or compute
---     operations
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-videocoding# This command /must/
---     only be called outside of a video coding scope
---
--- -   #VUID-vkCmdWriteBufferMarker2AMD-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker VK_AMD_buffer_marker>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2'
-cmdWriteBufferMarker2AMD :: forall io
-                          . (MonadIO io)
-                         => -- | @commandBuffer@ is the command buffer into which the command will be
-                            -- recorded.
-                            CommandBuffer
-                         -> -- | @stage@ specifies the pipeline stage whose completion triggers the
-                            -- marker write.
-                            PipelineStageFlags2
-                         -> -- | @dstBuffer@ is the buffer where the marker will be written.
-                            ("dstBuffer" ::: Buffer)
-                         -> -- | @dstOffset@ is the byte offset into the buffer where the marker will be
-                            -- written.
-                            ("dstOffset" ::: DeviceSize)
-                         -> -- | @marker@ is the 32-bit value of the marker.
-                            ("marker" ::: Word32)
-                         -> io ()
-cmdWriteBufferMarker2AMD commandBuffer
-                           stage
-                           dstBuffer
-                           dstOffset
-                           marker = liftIO $ do
-  let vkCmdWriteBufferMarker2AMDPtr = pVkCmdWriteBufferMarker2AMD (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdWriteBufferMarker2AMDPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteBufferMarker2AMD is null" Nothing Nothing
-  let vkCmdWriteBufferMarker2AMD' = mkVkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMDPtr
-  traceAroundEvent "vkCmdWriteBufferMarker2AMD" (vkCmdWriteBufferMarker2AMD'
-                                                   (commandBufferHandle (commandBuffer))
-                                                   (stage)
-                                                   (dstBuffer)
-                                                   (dstOffset)
-                                                   (marker))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkGetQueueCheckpointData2NV
-  :: FunPtr (Ptr Queue_T -> Ptr Word32 -> Ptr CheckpointData2NV -> IO ()) -> Ptr Queue_T -> Ptr Word32 -> Ptr CheckpointData2NV -> IO ()
-
--- | vkGetQueueCheckpointData2NV - Retrieve diagnostic checkpoint data
---
--- = Description
---
--- If @pCheckpointData@ is @NULL@, then the number of checkpoint markers
--- available is returned in @pCheckpointDataCount@. Otherwise,
--- @pCheckpointDataCount@ /must/ point to a variable set by the user to the
--- number of elements in the @pCheckpointData@ array, and on return the
--- variable is overwritten with the number of structures actually written
--- to @pCheckpointData@.
---
--- If @pCheckpointDataCount@ is less than the number of checkpoint markers
--- available, at most @pCheckpointDataCount@ structures will be written.
---
--- == Valid Usage
---
--- -   #VUID-vkGetQueueCheckpointData2NV-queue-03892# The device that
---     @queue@ belongs to /must/ be in the lost state
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkGetQueueCheckpointData2NV-queue-parameter# @queue@ /must/ be
---     a valid 'Vulkan.Core10.Handles.Queue' handle
---
--- -   #VUID-vkGetQueueCheckpointData2NV-pCheckpointDataCount-parameter#
---     @pCheckpointDataCount@ /must/ be a valid pointer to a @uint32_t@
---     value
---
--- -   #VUID-vkGetQueueCheckpointData2NV-pCheckpointData-parameter# If the
---     value referenced by @pCheckpointDataCount@ is not @0@, and
---     @pCheckpointData@ is not @NULL@, @pCheckpointData@ /must/ be a valid
---     pointer to an array of @pCheckpointDataCount@ 'CheckpointData2NV'
---     structures
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,
--- 'CheckpointData2NV', 'Vulkan.Core10.Handles.Queue'
-getQueueCheckpointData2NV :: forall io
-                           . (MonadIO io)
-                          => -- | @queue@ is the 'Vulkan.Core10.Handles.Queue' object the caller would
-                             -- like to retrieve checkpoint data for
-                             Queue
-                          -> io (("checkpointData" ::: Vector CheckpointData2NV))
-getQueueCheckpointData2NV queue = liftIO . evalContT $ do
-  let vkGetQueueCheckpointData2NVPtr = pVkGetQueueCheckpointData2NV (case queue of Queue{deviceCmds} -> deviceCmds)
-  lift $ unless (vkGetQueueCheckpointData2NVPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetQueueCheckpointData2NV is null" Nothing Nothing
-  let vkGetQueueCheckpointData2NV' = mkVkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NVPtr
-  let queue' = queueHandle (queue)
-  pPCheckpointDataCount <- ContT $ bracket (callocBytes @Word32 4) free
-  lift $ traceAroundEvent "vkGetQueueCheckpointData2NV" (vkGetQueueCheckpointData2NV'
-                                                           queue'
-                                                           (pPCheckpointDataCount)
-                                                           (nullPtr))
-  pCheckpointDataCount <- lift $ peek @Word32 pPCheckpointDataCount
-  pPCheckpointData <- ContT $ bracket (callocBytes @CheckpointData2NV ((fromIntegral (pCheckpointDataCount)) * 32)) free
-  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCheckpointData `advancePtrBytes` (i * 32) :: Ptr CheckpointData2NV) . ($ ())) [0..(fromIntegral (pCheckpointDataCount)) - 1]
-  lift $ traceAroundEvent "vkGetQueueCheckpointData2NV" (vkGetQueueCheckpointData2NV'
-                                                           queue'
-                                                           (pPCheckpointDataCount)
-                                                           ((pPCheckpointData)))
-  pCheckpointDataCount' <- lift $ peek @Word32 pPCheckpointDataCount
-  pCheckpointData' <- lift $ generateM (fromIntegral (pCheckpointDataCount')) (\i -> peekCStruct @CheckpointData2NV (((pPCheckpointData) `advancePtrBytes` (32 * (i)) :: Ptr CheckpointData2NV)))
-  pure $ (pCheckpointData')
-
-
+import Vulkan.Core13.Enums.AccessFlags2 (pattern ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT)
+import Vulkan.Core13.Enums.AccessFlags2 (pattern ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT)
+import Vulkan.Core13.Enums.PipelineStageFlags2 (pattern PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT)
 -- No documentation found for TopLevel "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR"
 pattern STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = STRUCTURE_TYPE_MEMORY_BARRIER_2
 
@@ -1042,131 +665,6 @@
 
 -- No documentation found for TopLevel "vkCmdWriteTimestamp2KHR"
 cmdWriteTimestamp2KHR = cmdWriteTimestamp2
-
-
--- | VkQueueFamilyCheckpointProperties2NV - Return structure for queue family
--- checkpoint information query
---
--- = Description
---
--- Additional queue family information can be queried by setting
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2'::@pNext@
--- to point to a 'QueueFamilyCheckpointProperties2NV' structure.
---
--- == Valid Usage (Implicit)
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,
--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data QueueFamilyCheckpointProperties2NV = QueueFamilyCheckpointProperties2NV
-  { -- | @checkpointExecutionStageMask@ is a mask indicating which pipeline
-    -- stages the implementation can execute checkpoint markers in.
-    checkpointExecutionStageMask :: PipelineStageFlags2 }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (QueueFamilyCheckpointProperties2NV)
-#endif
-deriving instance Show QueueFamilyCheckpointProperties2NV
-
-instance ToCStruct QueueFamilyCheckpointProperties2NV where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p QueueFamilyCheckpointProperties2NV{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (checkpointExecutionStageMask)
-    f
-  cStructSize = 24
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (zero)
-    f
-
-instance FromCStruct QueueFamilyCheckpointProperties2NV where
-  peekCStruct p = do
-    checkpointExecutionStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))
-    pure $ QueueFamilyCheckpointProperties2NV
-             checkpointExecutionStageMask
-
-instance Storable QueueFamilyCheckpointProperties2NV where
-  sizeOf ~_ = 24
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero QueueFamilyCheckpointProperties2NV where
-  zero = QueueFamilyCheckpointProperties2NV
-           zero
-
-
--- | VkCheckpointData2NV - Return structure for command buffer checkpoint
--- data
---
--- == Valid Usage (Implicit)
---
--- The stages at which a checkpoint marker /can/ be executed are
--- implementation-defined and /can/ be queried by calling
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceQueueFamilyProperties2'.
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,
--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',
--- 'Vulkan.Core10.Enums.StructureType.StructureType',
--- 'getQueueCheckpointData2NV'
-data CheckpointData2NV = CheckpointData2NV
-  { -- | @stage@ indicates a single pipeline stage which the checkpoint marker
-    -- data refers to.
-    stage :: PipelineStageFlags2
-  , -- | @pCheckpointMarker@ contains the value of the last checkpoint marker
-    -- executed in the stage that @stage@ refers to.
-    checkpointMarker :: Ptr ()
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (CheckpointData2NV)
-#endif
-deriving instance Show CheckpointData2NV
-
-instance ToCStruct CheckpointData2NV where
-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p CheckpointData2NV{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (stage)
-    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (checkpointMarker)
-    f
-  cStructSize = 32
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)
-    f
-
-instance FromCStruct CheckpointData2NV where
-  peekCStruct p = do
-    stage <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))
-    pCheckpointMarker <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))
-    pure $ CheckpointData2NV
-             stage pCheckpointMarker
-
-instance Storable CheckpointData2NV where
-  sizeOf ~_ = 32
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero CheckpointData2NV where
-  zero = CheckpointData2NV
-           zero
-           zero
 
 
 -- No documentation found for TopLevel "VkAccessFlags2KHR"
diff --git a/src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot b/src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot
deleted file mode 100644
--- a/src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot
+++ /dev/null
@@ -1,508 +0,0 @@
-{-# language CPP #-}
--- | = Name
---
--- VK_KHR_synchronization2 - device extension
---
--- == VK_KHR_synchronization2
---
--- [__Name String__]
---     @VK_KHR_synchronization2@
---
--- [__Extension Type__]
---     Device extension
---
--- [__Registered Extension Number__]
---     315
---
--- [__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>
---
--- [__API Interactions__]
---
---     -   Interacts with VK_AMD_buffer_marker
---
---     -   Interacts with VK_EXT_blend_operation_advanced
---
---     -   Interacts with VK_EXT_conditional_rendering
---
---     -   Interacts with VK_EXT_fragment_density_map
---
---     -   Interacts with VK_EXT_mesh_shader
---
---     -   Interacts with VK_EXT_transform_feedback
---
---     -   Interacts with VK_KHR_acceleration_structure
---
---     -   Interacts with VK_KHR_fragment_shading_rate
---
---     -   Interacts with VK_KHR_ray_tracing_pipeline
---
---     -   Interacts with VK_NV_device_diagnostic_checkpoints
---
---     -   Interacts with VK_NV_device_generated_commands
---
---     -   Interacts with VK_NV_mesh_shader
---
---     -   Interacts with VK_NV_ray_tracing
---
---     -   Interacts with VK_NV_shading_rate_image
---
--- [__Deprecation State__]
---
---     -   /Promoted/ to
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
---
--- [__Contact__]
---
---     -   Tobias Hector
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_synchronization2] @tobski%0A*Here describe the issue or question you have about the VK_KHR_synchronization2 extension* >
---
--- == Other Extension Metadata
---
--- [__Last Modified Date__]
---     2020-12-03
---
--- [__Interactions and External Dependencies__]
---
---     -   Interacts with @VK_KHR_create_renderpass2@
---
--- [__Contributors__]
---
---     -   Tobias Hector
---
--- == Description
---
--- This extension modifies the original core synchronization APIs to
--- simplify the interface and improve usability of these APIs. It also adds
--- new pipeline stage and access flag types that extend into the 64-bit
--- range, as we have run out within the 32-bit range. The new flags are
--- identical to the old values within the 32-bit range, with new stages and
--- bits beyond that.
---
--- Pipeline stages and access flags are now specified together in memory
--- barrier structures, making the connection between the two more obvious.
--- Additionally, scoping the pipeline stages into the barrier structs
--- allows the use of the @MEMORY_READ@ and @MEMORY_WRITE@ flags without
--- sacrificing precision. The per-stage access flags should be used to
--- disambiguate specific accesses in a given stage or set of stages - for
--- instance, between uniform reads and sampling operations.
---
--- Layout transitions have been simplified as well; rather than requiring a
--- different set of layouts for depth\/stencil\/color attachments, there
--- are generic 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR' and
--- 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' layouts which are contextually
--- applied based on the image format. For example, for a depth format
--- image, 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' is equivalent to
--- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR'.
--- 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' also functionally replaces
--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'.
---
--- Events are now more efficient, because they include memory dependency
--- information when you set them on the device. Previously, this
--- information was only known when waiting on an event, so the dependencies
--- could not be satisfied until the wait occurred. That sometimes meant
--- stalling the pipeline when the wait occurred. The new API provides
--- enough information for implementations to satisfy these dependencies in
--- parallel with other tasks.
---
--- Queue submission has been changed to wrap command buffers and semaphores
--- in extensible structures, which incorporate changes from Vulkan 1.1,
--- @VK_KHR_device_group@, and @VK_KHR_timeline_semaphore@. This also adds a
--- pipeline stage to the semaphore signal operation, mirroring the existing
--- pipeline stage specification for wait operations.
---
--- Other miscellaneous changes include:
---
--- -   Events can now be specified as interacting only with the device,
---     allowing more efficient access to the underlying object.
---
--- -   Image memory barriers that do not perform an image layout transition
---     can be specified by setting @oldLayout@ equal to @newLayout@.
---
---     -   E.g. the old and new layout can both be set to
---         'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',
---         without discarding data in the image.
---
--- -   Queue family ownership transfer parameters are simplified in some
---     cases.
---
--- -   Where two synchronization commands need to be matched up (queue
---     transfer operations, events), the dependency information specified
---     in each place must now match completely for consistency.
---
--- -   Extensions with commands or functions with a
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags' or
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
---     parameter have had those APIs replaced with equivalents using
---     'PipelineStageFlags2KHR'.
---
--- -   The new event and barrier interfaces are now more extensible for
---     future changes.
---
--- -   Relevant pipeline stage masks can now be specified as empty with the
---     new 'PIPELINE_STAGE_NONE_KHR' and
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_NONE_KHR'
---     values.
---
--- -   'MemoryBarrier2KHR' can be chained to
---     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2',
---     overriding the original 32-bit stage and access masks.
---
--- == New Base Types
---
--- -   'Vulkan.Core10.FundamentalTypes.Flags64'
---
--- == New Commands
---
--- -   'cmdPipelineBarrier2KHR'
---
--- -   'cmdResetEvent2KHR'
---
--- -   'cmdSetEvent2KHR'
---
--- -   'cmdWaitEvents2KHR'
---
--- -   'cmdWriteTimestamp2KHR'
---
--- -   'queueSubmit2KHR'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker VK_AMD_buffer_marker>
--- is supported:
---
--- -   'cmdWriteBufferMarker2AMD'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>
--- is supported:
---
--- -   'getQueueCheckpointData2NV'
---
--- == New Structures
---
--- -   'BufferMemoryBarrier2KHR'
---
--- -   'CommandBufferSubmitInfoKHR'
---
--- -   'DependencyInfoKHR'
---
--- -   'ImageMemoryBarrier2KHR'
---
--- -   'SemaphoreSubmitInfoKHR'
---
--- -   'SubmitInfo2KHR'
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
---     'Vulkan.Core10.Device.DeviceCreateInfo':
---
---     -   'PhysicalDeviceSynchronization2FeaturesKHR'
---
--- -   Extending
---     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2':
---
---     -   'MemoryBarrier2KHR'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>
--- is supported:
---
--- -   'CheckpointData2NV'
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':
---
---     -   'QueueFamilyCheckpointProperties2NV'
---
--- == New Enums
---
--- -   'AccessFlagBits2KHR'
---
--- -   'PipelineStageFlagBits2KHR'
---
--- -   'SubmitFlagBitsKHR'
---
--- == New Bitmasks
---
--- -   'AccessFlags2KHR'
---
--- -   'PipelineStageFlags2KHR'
---
--- -   'SubmitFlagsKHR'
---
--- == New Enum Constants
---
--- -   'KHR_SYNCHRONIZATION_2_EXTENSION_NAME'
---
--- -   'KHR_SYNCHRONIZATION_2_SPEC_VERSION'
---
--- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':
---
---     -   'ACCESS_NONE_KHR'
---
--- -   Extending
---     'Vulkan.Core10.Enums.EventCreateFlagBits.EventCreateFlagBits':
---
---     -   'EVENT_CREATE_DEVICE_ONLY_BIT_KHR'
---
--- -   Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout':
---
---     -   'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'
---
---     -   'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'
---
--- -   Extending
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':
---
---     -   'PIPELINE_STAGE_NONE_KHR'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR'
---
---     -   'STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR'
---
---     -   'STRUCTURE_TYPE_DEPENDENCY_INFO_KHR'
---
---     -   'STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR'
---
---     -   'STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR'
---
---     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR'
---
---     -   'STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR'
---
---     -   'STRUCTURE_TYPE_SUBMIT_INFO_2_KHR'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced VK_EXT_blend_operation_advanced>
--- is supported:
---
--- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':
---
---     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_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.Core13.Enums.AccessFlags2.AccessFlagBits2':
---
---     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT'
---
--- -   Extending
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
---
---     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_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 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':
---
---     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'
---
--- -   Extending
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
---
---     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>
--- is supported:
---
--- -   Extending
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
---
---     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT'
---
---     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_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.Core13.Enums.AccessFlags2.AccessFlagBits2':
---
---     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'
---
---     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'
---
---     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'
---
--- -   Extending
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
---
---     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_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.Core13.Enums.AccessFlags2.AccessFlagBits2':
---
---     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR'
---
---     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'
---
--- -   Extending
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
---
---     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'
---
--- 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 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':
---
---     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'
---
--- -   Extending
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
---
---     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_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.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
---
---     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>
--- is supported:
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV'
---
--- 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.Core13.Enums.AccessFlags2.AccessFlagBits2':
---
---     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV'
---
---     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV'
---
--- -   Extending
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
---
---     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>
--- is supported:
---
--- -   Extending
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
---
---     -   'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'
---
---     -   'PIPELINE_STAGE_2_TASK_SHADER_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.Core13.Enums.AccessFlags2.AccessFlagBits2':
---
---     -   'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV'
---
---     -   'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV'
---
--- -   Extending
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
---
---     -   'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV'
---
---     -   'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_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.Core13.Enums.AccessFlags2.AccessFlagBits2':
---
---     -   'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV'
---
--- -   Extending
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
---
---     -   'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'
---
--- == Promotion to Vulkan 1.3
---
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- KHR suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
---
--- == Examples
---
--- See
--- <https://github.com/KhronosGroup/Vulkan-Docs/wiki/Synchronization-Examples>
---
--- == Version History
---
--- -   Revision 1, 2020-12-03 (Tobias Hector)
---
---     -   Internal revisions
---
--- == See Also
---
--- 'AccessFlagBits2KHR', 'AccessFlags2KHR', 'BufferMemoryBarrier2KHR',
--- 'CommandBufferSubmitInfoKHR', 'DependencyInfoKHR',
--- 'Vulkan.Core10.FundamentalTypes.Flags64', 'ImageMemoryBarrier2KHR',
--- 'MemoryBarrier2KHR', 'PhysicalDeviceSynchronization2FeaturesKHR',
--- 'PipelineStageFlagBits2KHR', 'PipelineStageFlags2KHR',
--- 'SemaphoreSubmitInfoKHR', 'SubmitFlagBitsKHR', 'SubmitFlagsKHR',
--- 'SubmitInfo2KHR', 'cmdPipelineBarrier2KHR', 'cmdResetEvent2KHR',
--- 'cmdSetEvent2KHR', 'cmdWaitEvents2KHR', 'cmdWriteTimestamp2KHR',
--- 'queueSubmit2KHR'
---
--- == Document Notes
---
--- For more information, see the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_synchronization2 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_synchronization2  ( CheckpointData2NV
-                                                  , QueueFamilyCheckpointProperties2NV
-                                                  ) where
-
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (ToCStruct)
-import Data.Kind (Type)
-
-data CheckpointData2NV
-
-instance ToCStruct CheckpointData2NV
-instance Show CheckpointData2NV
-
-instance FromCStruct CheckpointData2NV
-
-
-data QueueFamilyCheckpointProperties2NV
-
-instance ToCStruct QueueFamilyCheckpointProperties2NV
-instance Show QueueFamilyCheckpointProperties2NV
-
-instance FromCStruct QueueFamilyCheckpointProperties2NV
-
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_timeline_semaphore - device extension
 --
--- == VK_KHR_timeline_semaphore
+-- = VK_KHR_timeline_semaphore
 --
 -- [__Name String__]
 --     @VK_KHR_timeline_semaphore@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -92,7 +94,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Commands
@@ -190,8 +192,8 @@
 -- signal-before-wait requirement as the existing semaphores do?
 --
 -- __RESOLVED__: No. Timeline semaphores support signaling and waiting
--- entirely asynchronously. It is the responsibility of the client to avoid
--- deadlock.
+-- entirely asynchronously. It is the responsibility of the application to
+-- avoid deadlock.
 --
 -- 4) Does the new synchronization primitive allow resetting its payload?
 --
@@ -242,7 +244,7 @@
 -- ordering requirements of the original 'Vulkan.Core10.Handles.Semaphore'?
 --
 -- __RESOLVED__: Prior to calling any command which /may/ cause a wait
--- operation on a binary semaphore, the client /must/ ensure that the
+-- operation on a binary semaphore, the application /must/ ensure that the
 -- 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.
@@ -251,8 +253,9 @@
 -- timeline semaphores?
 --
 -- __RESOLVED__: No. The only feature which cannot be supported universally
--- is timeline semaphore import\/export. For import\/export, the client is
--- already required to query available external handle types via
+-- is timeline semaphore import\/export. For import\/export, the
+-- application is already required to query available external handle types
+-- via
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.getPhysicalDeviceExternalSemaphoreProperties'
 -- and provide the semaphore type by adding a 'SemaphoreTypeCreateInfoKHR'
 -- structure to the @pNext@ chain of
@@ -271,12 +274,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceTimelineSemaphoreFeaturesKHR',
--- 'PhysicalDeviceTimelineSemaphorePropertiesKHR',
--- 'SemaphoreSignalInfoKHR', 'SemaphoreTypeCreateInfoKHR',
--- 'SemaphoreTypeKHR', 'SemaphoreWaitFlagBitsKHR', 'SemaphoreWaitFlagsKHR',
--- 'SemaphoreWaitInfoKHR', 'TimelineSemaphoreSubmitInfoKHR',
--- 'getSemaphoreCounterValueKHR', 'signalSemaphoreKHR', 'waitSemaphoresKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_uniform_buffer_standard_layout - device extension
 --
--- == VK_KHR_uniform_buffer_standard_layout
+-- = VK_KHR_uniform_buffer_standard_layout
 --
 -- [__Name String__]
 --     @VK_KHR_uniform_buffer_standard_layout@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -64,7 +66,7 @@
 -- == Promotion to Vulkan 1.2
 --
 -- All functionality in this extension is included in core Vulkan 1.2, with
--- the KHR suffix omitted. The original type, enum and command names are
+-- the KHR suffix omitted. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -93,7 +95,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_variable_pointers - device extension
 --
--- == VK_KHR_variable_pointers
+-- = VK_KHR_variable_pointers
 --
 -- [__Name String__]
 --     @VK_KHR_variable_pointers@
@@ -21,9 +21,13 @@
 --     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
+--          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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -85,7 +89,7 @@
 -- All functionality in this extension is included in core Vulkan 1.1, with
 -- the KHR suffix omitted, however support for the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-variablePointersStorageBuffer variablePointersStorageBuffer>
--- feature is made optional. The original type, enum and command names are
+-- feature is made optional. The original type, enum, and command names are
 -- still available as aliases of the core functionality.
 --
 -- == New Structures
@@ -146,8 +150,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceVariablePointerFeaturesKHR',
--- 'PhysicalDeviceVariablePointersFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs b/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs
--- a/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs
+++ b/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_vertex_attribute_divisor - device extension
 --
--- == VK_KHR_vertex_attribute_divisor
+-- = VK_KHR_vertex_attribute_divisor
 --
 -- [__Name String__]
 --     @VK_KHR_vertex_attribute_divisor@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -97,10 +97,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceVertexAttributeDivisorFeaturesKHR',
--- 'PhysicalDeviceVertexAttributeDivisorPropertiesKHR',
--- 'PipelineVertexInputDivisorStateCreateInfoKHR',
--- 'VertexInputBindingDivisorDescriptionKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -167,12 +164,14 @@
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
 --
 -- -   #VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateZeroDivisor-02228#
---     If the @vertexAttributeInstanceRateZeroDivisor@ feature is not
---     enabled, @divisor@ /must/ not be @0@
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>
+--     feature is not enabled, @divisor@ /must/ not be @0@
 --
 -- -   #VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateDivisor-02229#
---     If the @vertexAttributeInstanceRateDivisor@ feature is not enabled,
---     @divisor@ /must/ be @1@
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor>
+--     feature is not enabled, @divisor@ /must/ be @1@
 --
 -- -   #VUID-VkVertexInputBindingDivisorDescriptionKHR-divisor-01870#
 --     @divisor@ /must/ be a value between @0@ and
diff --git a/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs-boot b/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_vertex_attribute_divisor - device extension
 --
--- == VK_KHR_vertex_attribute_divisor
+-- = VK_KHR_vertex_attribute_divisor
 --
 -- [__Name String__]
 --     @VK_KHR_vertex_attribute_divisor@
@@ -23,7 +23,7 @@
 -- [__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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -97,10 +97,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceVertexAttributeDivisorFeaturesKHR',
--- 'PhysicalDeviceVertexAttributeDivisorPropertiesKHR',
--- 'PipelineVertexInputDivisorStateCreateInfoKHR',
--- 'VertexInputBindingDivisorDescriptionKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_vulkan_memory_model - device extension
 --
--- == VK_KHR_vulkan_memory_model
+-- = VK_KHR_vulkan_memory_model
 --
 -- [__Name String__]
 --     @VK_KHR_vulkan_memory_model@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -71,8 +73,6 @@
 -- formally defines how to synchronize memory accesses to the same memory
 -- locations performed by multiple shader invocations.
 --
--- Note
---
 -- Version 3 of the spec added a member
 -- (@vulkanMemoryModelAvailabilityVisibilityChains@) to
 -- 'PhysicalDeviceVulkanMemoryModelFeaturesKHR', which is an incompatible
@@ -83,7 +83,7 @@
 -- All functionality in this extension is included in core Vulkan 1.2, with
 -- the KHR suffix omitted. However, if Vulkan 1.2 is supported and this
 -- extension is not, the @vulkanMemoryModel@ capability is optional. The
--- original type, enum and command names are still available as aliases of
+-- original type, enum, and command names are still available as aliases of
 -- the core functionality.
 --
 -- == New Structures
@@ -121,7 +121,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceVulkanMemoryModelFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_wayland_surface - instance extension
 --
--- == VK_KHR_wayland_surface
+-- = VK_KHR_wayland_surface
 --
 -- [__Name String__]
 --     @VK_KHR_wayland_surface@
@@ -175,9 +175,7 @@
 --
 -- == See Also
 --
--- 'WaylandSurfaceCreateFlagsKHR', 'WaylandSurfaceCreateInfoKHR',
--- 'createWaylandSurfaceKHR',
--- 'getPhysicalDeviceWaylandPresentationSupportKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -484,7 +482,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_wayland_surface VK_KHR_wayland_surface>,
--- 'WaylandSurfaceCreateInfoKHR'
+-- 'Vulkan.Core10.FundamentalTypes.Flags', 'WaylandSurfaceCreateInfoKHR'
 newtype WaylandSurfaceCreateFlagsKHR = WaylandSurfaceCreateFlagsKHR Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_wayland_surface - instance extension
 --
--- == VK_KHR_wayland_surface
+-- = VK_KHR_wayland_surface
 --
 -- [__Name String__]
 --     @VK_KHR_wayland_surface@
@@ -175,9 +175,7 @@
 --
 -- == See Also
 --
--- 'WaylandSurfaceCreateFlagsKHR', 'WaylandSurfaceCreateInfoKHR',
--- 'createWaylandSurfaceKHR',
--- 'getPhysicalDeviceWaylandPresentationSupportKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_win32_keyed_mutex - device extension
 --
--- == VK_KHR_win32_keyed_mutex
+-- = VK_KHR_win32_keyed_mutex
 --
 -- [__Name String__]
 --     @VK_KHR_win32_keyed_mutex@
@@ -78,7 +78,7 @@
 --
 -- == See Also
 --
--- 'Win32KeyedMutexAcquireReleaseInfoKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_win32_keyed_mutex - device extension
 --
--- == VK_KHR_win32_keyed_mutex
+-- = VK_KHR_win32_keyed_mutex
 --
 -- [__Name String__]
 --     @VK_KHR_win32_keyed_mutex@
@@ -78,7 +78,7 @@
 --
 -- == See Also
 --
--- 'Win32KeyedMutexAcquireReleaseInfoKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_win32_surface - instance extension
 --
--- == VK_KHR_win32_surface
+-- = VK_KHR_win32_surface
 --
 -- [__Name String__]
 --     @VK_KHR_win32_surface@
@@ -202,8 +202,7 @@
 --
 -- == See Also
 --
--- 'Win32SurfaceCreateFlagsKHR', 'Win32SurfaceCreateInfoKHR',
--- 'createWin32SurfaceKHR', 'getPhysicalDeviceWin32PresentationSupportKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -300,7 +299,7 @@
   "dynamic" mkVkCreateWin32SurfaceKHR
   :: FunPtr (Ptr Instance_T -> Ptr Win32SurfaceCreateInfoKHR -> Ptr AllocationCallbacks -> Ptr SurfaceKHR -> IO Result) -> Ptr Instance_T -> Ptr Win32SurfaceCreateInfoKHR -> Ptr AllocationCallbacks -> Ptr SurfaceKHR -> IO Result
 
--- | vkCreateWin32SurfaceKHR - Create a VkSurfaceKHR object for an Win32
+-- | vkCreateWin32SurfaceKHR - Create a VkSurfaceKHR object for a Win32
 -- native window
 --
 -- == Valid Usage (Implicit)
@@ -336,10 +335,10 @@
 -- interacting with a 'Vulkan.Extensions.Handles.SurfaceKHR' through a
 -- 'Vulkan.Extensions.Handles.SwapchainKHR'. In a multithreaded
 -- environment, calling @SendMessage@ from a thread that is not the thread
--- associated with @pCreateInfo@::@hwnd@ will block until the application
--- has processed the window message. Thus, applications /should/ either
--- call these Vulkan functions on the message pump thread, or make sure
--- their message pump is actively running. Failing to do so /may/ result in
+-- associated with @pCreateInfo->hwnd@ will block until the application has
+-- processed the window message. Thus, applications /should/ either call
+-- these Vulkan functions on the message pump thread, or make sure their
+-- message pump is actively running. Failing to do so /may/ result in
 -- deadlocks.
 --
 -- The functions subject to this requirement are:
@@ -532,7 +531,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_surface VK_KHR_win32_surface>,
--- 'Win32SurfaceCreateInfoKHR'
+-- 'Vulkan.Core10.FundamentalTypes.Flags', 'Win32SurfaceCreateInfoKHR'
 newtype Win32SurfaceCreateFlagsKHR = Win32SurfaceCreateFlagsKHR Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_win32_surface - instance extension
 --
--- == VK_KHR_win32_surface
+-- = VK_KHR_win32_surface
 --
 -- [__Name String__]
 --     @VK_KHR_win32_surface@
@@ -202,8 +202,7 @@
 --
 -- == See Also
 --
--- 'Win32SurfaceCreateFlagsKHR', 'Win32SurfaceCreateInfoKHR',
--- 'createWin32SurfaceKHR', 'getPhysicalDeviceWin32PresentationSupportKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_workgroup_memory_explicit_layout - device extension
 --
--- == VK_KHR_workgroup_memory_explicit_layout
+-- = VK_KHR_workgroup_memory_explicit_layout
 --
 -- [__Name String__]
 --     @VK_KHR_workgroup_memory_explicit_layout@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -43,7 +45,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shared_memory_block.txt GL_EXT_shared_memory_block>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GL_EXT_shared_memory_block.txt GL_EXT_shared_memory_block>
 --
 -- [__Contributors__]
 --
@@ -109,7 +111,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_workgroup_memory_explicit_layout - device extension
 --
--- == VK_KHR_workgroup_memory_explicit_layout
+-- = VK_KHR_workgroup_memory_explicit_layout
 --
 -- [__Name String__]
 --     @VK_KHR_workgroup_memory_explicit_layout@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -43,7 +45,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shared_memory_block.txt GL_EXT_shared_memory_block>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/ext/GL_EXT_shared_memory_block.txt GL_EXT_shared_memory_block>
 --
 -- [__Contributors__]
 --
@@ -109,7 +111,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_xcb_surface - instance extension
 --
--- == VK_KHR_xcb_surface
+-- = VK_KHR_xcb_surface
 --
 -- [__Name String__]
 --     @VK_KHR_xcb_surface@
@@ -158,8 +158,7 @@
 --
 -- == See Also
 --
--- 'XcbSurfaceCreateFlagsKHR', 'XcbSurfaceCreateInfoKHR',
--- 'createXcbSurfaceKHR', 'getPhysicalDeviceXcbPresentationSupportKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -469,7 +468,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xcb_surface VK_KHR_xcb_surface>,
--- 'XcbSurfaceCreateInfoKHR'
+-- 'Vulkan.Core10.FundamentalTypes.Flags', 'XcbSurfaceCreateInfoKHR'
 newtype XcbSurfaceCreateFlagsKHR = XcbSurfaceCreateFlagsKHR Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_xcb_surface - instance extension
 --
--- == VK_KHR_xcb_surface
+-- = VK_KHR_xcb_surface
 --
 -- [__Name String__]
 --     @VK_KHR_xcb_surface@
@@ -158,8 +158,7 @@
 --
 -- == See Also
 --
--- 'XcbSurfaceCreateFlagsKHR', 'XcbSurfaceCreateInfoKHR',
--- 'createXcbSurfaceKHR', 'getPhysicalDeviceXcbPresentationSupportKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_xlib_surface - instance extension
 --
--- == VK_KHR_xlib_surface
+-- = VK_KHR_xlib_surface
 --
 -- [__Name String__]
 --     @VK_KHR_xlib_surface@
@@ -158,8 +158,7 @@
 --
 -- == See Also
 --
--- 'XlibSurfaceCreateFlagsKHR', 'XlibSurfaceCreateInfoKHR',
--- 'createXlibSurfaceKHR', 'getPhysicalDeviceXlibPresentationSupportKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -471,7 +470,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xlib_surface VK_KHR_xlib_surface>,
--- 'XlibSurfaceCreateInfoKHR'
+-- 'Vulkan.Core10.FundamentalTypes.Flags', 'XlibSurfaceCreateInfoKHR'
 newtype XlibSurfaceCreateFlagsKHR = XlibSurfaceCreateFlagsKHR Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_xlib_surface - instance extension
 --
--- == VK_KHR_xlib_surface
+-- = VK_KHR_xlib_surface
 --
 -- [__Name String__]
 --     @VK_KHR_xlib_surface@
@@ -158,8 +158,7 @@
 --
 -- == See Also
 --
--- 'XlibSurfaceCreateFlagsKHR', 'XlibSurfaceCreateInfoKHR',
--- 'createXlibSurfaceKHR', 'getPhysicalDeviceXlibPresentationSupportKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_KHR_zero_initialize_workgroup_memory - device extension
 --
--- == VK_KHR_zero_initialize_workgroup_memory
+-- = VK_KHR_zero_initialize_workgroup_memory
 --
 -- [__Name String__]
 --     @VK_KHR_zero_initialize_workgroup_memory@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Deprecation State__]
 --
@@ -77,9 +79,11 @@
 --
 -- == Promotion to Vulkan 1.3
 --
--- Functionality in this extension is included in core Vulkan 1.3, with the
--- KHR suffix omitted. The original type, enum and command names are still
--- available as aliases of the core functionality.
+-- Vulkan APIs in this extension are included in core Vulkan 1.3, with the
+-- KHR suffix omitted. External interactions defined by this extension,
+-- such as SPIR-V token names, retain their original names. The original
+-- Vulkan API names are still available as aliases of the core
+-- functionality.
 --
 -- == Version History
 --
@@ -89,7 +93,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_LUNARG_direct_driver_loading - instance extension
 --
--- == VK_LUNARG_direct_driver_loading
+-- = VK_LUNARG_direct_driver_loading
 --
 -- [__Name String__]
 --     @VK_LUNARG_direct_driver_loading@
@@ -88,9 +88,7 @@
 --
 -- == See Also
 --
--- 'PFN_vkGetInstanceProcAddrLUNARG', 'DirectDriverLoadingFlagsLUNARG',
--- 'DirectDriverLoadingInfoLUNARG', 'DirectDriverLoadingListLUNARG',
--- 'DirectDriverLoadingModeLUNARG'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -307,7 +305,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_LUNARG_direct_driver_loading VK_LUNARG_direct_driver_loading>,
--- 'DirectDriverLoadingInfoLUNARG'
+-- 'DirectDriverLoadingInfoLUNARG', 'Vulkan.Core10.FundamentalTypes.Flags'
 newtype DirectDriverLoadingFlagsLUNARG = DirectDriverLoadingFlagsLUNARG Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
@@ -407,8 +405,6 @@
 -- used only to specify device driver addresses in
 -- 'DirectDriverLoadingInfoLUNARG'::@pfnGetInstanceProcAddr@.
 --
--- Note
---
 -- This type exists only because of limitations in the XML schema and
 -- processing scripts, and its name may change in the future. Ideally we
 -- would use the @PFN_vkGetInstanceProcAddr@ type generated in the
@@ -417,7 +413,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_LUNARG_direct_driver_loading VK_LUNARG_direct_driver_loading>,
--- 'DirectDriverLoadingInfoLUNARG'
+-- 'DirectDriverLoadingInfoLUNARG', 'Vulkan.Core10.Handles.Instance'
 type PFN_vkGetInstanceProcAddrLUNARG = FunPtr FN_vkGetInstanceProcAddrLUNARG
 
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_LUNARG_direct_driver_loading - instance extension
 --
--- == VK_LUNARG_direct_driver_loading
+-- = VK_LUNARG_direct_driver_loading
 --
 -- [__Name String__]
 --     @VK_LUNARG_direct_driver_loading@
@@ -88,9 +88,7 @@
 --
 -- == See Also
 --
--- 'PFN_vkGetInstanceProcAddrLUNARG', 'DirectDriverLoadingFlagsLUNARG',
--- 'DirectDriverLoadingInfoLUNARG', 'DirectDriverLoadingListLUNARG',
--- 'DirectDriverLoadingModeLUNARG'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_MESA_image_alignment_control.hs b/src/Vulkan/Extensions/VK_MESA_image_alignment_control.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_MESA_image_alignment_control.hs
@@ -0,0 +1,403 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_MESA_image_alignment_control - device extension
+--
+-- = VK_MESA_image_alignment_control
+--
+-- [__Name String__]
+--     @VK_MESA_image_alignment_control@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     576
+--
+-- [__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 Vulkan Version 1.1>
+--
+-- [__Special Use__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>
+--
+-- [__Contact__]
+--
+--     -   Hans-Kristian Arntzen
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_MESA_image_alignment_control] @HansKristian-Work%0A*Here describe the issue or question you have about the VK_MESA_image_alignment_control extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-05-03
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+-- == Description
+--
+-- This extension allows applications to request a narrower alignment for
+-- images than an implementation would otherwise require. Some
+-- implementations internally support multiple image layouts in
+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', each with
+-- different alignment requirements and performance trade-offs. In some API
+-- layering use cases such as D3D12, it is beneficial to be able to control
+-- the alignment, since certain alignments for placed resources are
+-- guaranteed to be supported, and emulating that expectation requires
+-- unnecessary padding of allocations.
+--
+-- 'ImageAlignmentControlCreateInfoMESA' /can/ be chained to
+-- 'Vulkan.Core10.Image.ImageCreateInfo', requesting that the alignment is
+-- no more than the provided alignment. If the requested alignment is not
+-- supported for a given 'Vulkan.Core10.Image.ImageCreateInfo', a larger
+-- alignment /may/ be returned.
+--
+-- While something similar could be achieved with
+-- @VK_EXT_image_drm_format_modifier@ in theory, this is not the intended
+-- way to use that extension. Format modifiers are generally used for
+-- externally shareable images, and would not be platform portable. It is
+-- also a cumbersome API to use just to lower the alignment.
+--
+-- == New Structures
+--
+-- -   Extending 'Vulkan.Core10.Image.ImageCreateInfo':
+--
+--     -   'ImageAlignmentControlCreateInfoMESA'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceImageAlignmentControlFeaturesMESA'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceImageAlignmentControlPropertiesMESA'
+--
+-- == New Enum Constants
+--
+-- -   'MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME'
+--
+-- -   'MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-04-05 (Hans-Kristian Arntzen)
+--
+--     -   Initial specification
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MESA_image_alignment_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_MESA_image_alignment_control  ( PhysicalDeviceImageAlignmentControlFeaturesMESA(..)
+                                                          , PhysicalDeviceImageAlignmentControlPropertiesMESA(..)
+                                                          , ImageAlignmentControlCreateInfoMESA(..)
+                                                          , MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION
+                                                          , pattern MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION
+                                                          , MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME
+                                                          , pattern MESA_IMAGE_ALIGNMENT_CONTROL_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_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA))
+-- | VkPhysicalDeviceImageAlignmentControlFeaturesMESA - Structure describing
+-- features supported by VK_MESA_image_alignment_control
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceImageAlignmentControlFeaturesMESA' 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. 'PhysicalDeviceImageAlignmentControlFeaturesMESA' /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_MESA_image_alignment_control VK_MESA_image_alignment_control>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceImageAlignmentControlFeaturesMESA = PhysicalDeviceImageAlignmentControlFeaturesMESA
+  { -- | #features-imageAlignmentControl# @imageAlignmentControl@ specifies that
+    -- 'ImageAlignmentControlCreateInfoMESA' /can/ be chained in
+    -- 'Vulkan.Core10.Image.ImageCreateInfo'
+    imageAlignmentControl :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceImageAlignmentControlFeaturesMESA)
+#endif
+deriving instance Show PhysicalDeviceImageAlignmentControlFeaturesMESA
+
+instance ToCStruct PhysicalDeviceImageAlignmentControlFeaturesMESA where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceImageAlignmentControlFeaturesMESA{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (imageAlignmentControl))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceImageAlignmentControlFeaturesMESA where
+  peekCStruct p = do
+    imageAlignmentControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceImageAlignmentControlFeaturesMESA
+             (bool32ToBool imageAlignmentControl)
+
+instance Storable PhysicalDeviceImageAlignmentControlFeaturesMESA where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceImageAlignmentControlFeaturesMESA where
+  zero = PhysicalDeviceImageAlignmentControlFeaturesMESA
+           zero
+
+
+-- | VkPhysicalDeviceImageAlignmentControlPropertiesMESA - Structure
+-- describing supported image alignments for a physical device
+--
+-- = Members
+--
+-- The members of the 'PhysicalDeviceImageAlignmentControlPropertiesMESA'
+-- structure describe the following:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceImageAlignmentControlPropertiesMESA' 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_MESA_image_alignment_control VK_MESA_image_alignment_control>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceImageAlignmentControlPropertiesMESA = PhysicalDeviceImageAlignmentControlPropertiesMESA
+  { -- | #limits-supportedImageAlignmentMask# @supportedImageAlignmentMask@ is a
+    -- bitwise-or of all potentially supported image alignments for a given
+    -- physical device when using
+    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'. If a given
+    -- alignment is supported, the application /can/ request an image to have
+    -- that alignment. A given set of image creation parameters /may/ support a
+    -- subset of these alignments. To determine if a particular alignment is
+    -- supported for a given set of image creation parameters, check
+    -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements'::@alignment@ after
+    -- chaining in 'ImageAlignmentControlCreateInfoMESA'.
+    supportedImageAlignmentMask :: Word32 }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceImageAlignmentControlPropertiesMESA)
+#endif
+deriving instance Show PhysicalDeviceImageAlignmentControlPropertiesMESA
+
+instance ToCStruct PhysicalDeviceImageAlignmentControlPropertiesMESA where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceImageAlignmentControlPropertiesMESA{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (supportedImageAlignmentMask)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct PhysicalDeviceImageAlignmentControlPropertiesMESA where
+  peekCStruct p = do
+    supportedImageAlignmentMask <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pure $ PhysicalDeviceImageAlignmentControlPropertiesMESA
+             supportedImageAlignmentMask
+
+instance Storable PhysicalDeviceImageAlignmentControlPropertiesMESA where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceImageAlignmentControlPropertiesMESA where
+  zero = PhysicalDeviceImageAlignmentControlPropertiesMESA
+           zero
+
+
+-- | VkImageAlignmentControlCreateInfoMESA - Specify image alignment
+--
+-- = Description
+--
+-- If @maximumRequestedAlignment@ is not 0, the implementation /should/
+-- choose an image memory layout that requires an alignment no larger than
+-- @maximumRequestedAlignment@ as reported in
+-- 'Vulkan.Core10.MemoryManagement.MemoryRequirements'::@alignment@. If
+-- such a layout does not exist for the given image creation parameters,
+-- the implementation /should/ return the smallest alignment which is
+-- supported in 'Vulkan.Core10.MemoryManagement.MemoryRequirements'.
+--
+-- If an implementation needs to disable image compression for
+-- @maximumRequestedAlignment@ to be honored - where a larger alignment
+-- would enable image compression - the implementation /should/ not use
+-- @maximumRequestedAlignment@, and /should/ return the smallest alignment
+-- which does not compromise compression. If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageCompressionControl imageCompressionControl>
+-- feature is enabled, the application /can/ chain a
+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT'
+-- with
+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.IMAGE_COMPRESSION_DISABLED_EXT'.
+-- In this case, image compression considerations /should/ not apply when
+-- implementation decides alignment.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkImageAlignmentControlCreateInfoMESA-maximumRequestedAlignment-09655#
+--     If @maximumRequestedAlignment@ is not 0, @maximumRequestedAlignment@
+--     /must/ be a power of two
+--
+-- -   #VUID-VkImageAlignmentControlCreateInfoMESA-maximumRequestedAlignment-09656#
+--     If @maximumRequestedAlignment@ is not 0, the bitwise-and of
+--     @maximumRequestedAlignment@ and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-supportedImageAlignmentMask supportedImageAlignmentMask>
+--     /must/ be non-zero
+--
+-- -   #VUID-VkImageAlignmentControlCreateInfoMESA-imageAlignmentControl-09657#
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageAlignmentControl imageAlignmentControl>
+--     /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkImageAlignmentControlCreateInfoMESA-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MESA_image_alignment_control VK_MESA_image_alignment_control>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data ImageAlignmentControlCreateInfoMESA = ImageAlignmentControlCreateInfoMESA
+  { -- | @maximumRequestedAlignment@ specifies the maximum alignment for the
+    -- image.
+    maximumRequestedAlignment :: Word32 }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ImageAlignmentControlCreateInfoMESA)
+#endif
+deriving instance Show ImageAlignmentControlCreateInfoMESA
+
+instance ToCStruct ImageAlignmentControlCreateInfoMESA where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ImageAlignmentControlCreateInfoMESA{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maximumRequestedAlignment)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct ImageAlignmentControlCreateInfoMESA where
+  peekCStruct p = do
+    maximumRequestedAlignment <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pure $ ImageAlignmentControlCreateInfoMESA
+             maximumRequestedAlignment
+
+instance Storable ImageAlignmentControlCreateInfoMESA where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ImageAlignmentControlCreateInfoMESA where
+  zero = ImageAlignmentControlCreateInfoMESA
+           zero
+
+
+type MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION"
+pattern MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION :: forall a . Integral a => a
+pattern MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION = 1
+
+
+type MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME = "VK_MESA_image_alignment_control"
+
+-- No documentation found for TopLevel "VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME"
+pattern MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME = "VK_MESA_image_alignment_control"
+
diff --git a/src/Vulkan/Extensions/VK_MESA_image_alignment_control.hs-boot b/src/Vulkan/Extensions/VK_MESA_image_alignment_control.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_MESA_image_alignment_control.hs-boot
@@ -0,0 +1,152 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_MESA_image_alignment_control - device extension
+--
+-- = VK_MESA_image_alignment_control
+--
+-- [__Name String__]
+--     @VK_MESA_image_alignment_control@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     576
+--
+-- [__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 Vulkan Version 1.1>
+--
+-- [__Special Use__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>
+--
+-- [__Contact__]
+--
+--     -   Hans-Kristian Arntzen
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_MESA_image_alignment_control] @HansKristian-Work%0A*Here describe the issue or question you have about the VK_MESA_image_alignment_control extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-05-03
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+-- == Description
+--
+-- This extension allows applications to request a narrower alignment for
+-- images than an implementation would otherwise require. Some
+-- implementations internally support multiple image layouts in
+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', each with
+-- different alignment requirements and performance trade-offs. In some API
+-- layering use cases such as D3D12, it is beneficial to be able to control
+-- the alignment, since certain alignments for placed resources are
+-- guaranteed to be supported, and emulating that expectation requires
+-- unnecessary padding of allocations.
+--
+-- 'ImageAlignmentControlCreateInfoMESA' /can/ be chained to
+-- 'Vulkan.Core10.Image.ImageCreateInfo', requesting that the alignment is
+-- no more than the provided alignment. If the requested alignment is not
+-- supported for a given 'Vulkan.Core10.Image.ImageCreateInfo', a larger
+-- alignment /may/ be returned.
+--
+-- While something similar could be achieved with
+-- @VK_EXT_image_drm_format_modifier@ in theory, this is not the intended
+-- way to use that extension. Format modifiers are generally used for
+-- externally shareable images, and would not be platform portable. It is
+-- also a cumbersome API to use just to lower the alignment.
+--
+-- == New Structures
+--
+-- -   Extending 'Vulkan.Core10.Image.ImageCreateInfo':
+--
+--     -   'ImageAlignmentControlCreateInfoMESA'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceImageAlignmentControlFeaturesMESA'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceImageAlignmentControlPropertiesMESA'
+--
+-- == New Enum Constants
+--
+-- -   'MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME'
+--
+-- -   'MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-04-05 (Hans-Kristian Arntzen)
+--
+--     -   Initial specification
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MESA_image_alignment_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_MESA_image_alignment_control  ( ImageAlignmentControlCreateInfoMESA
+                                                          , PhysicalDeviceImageAlignmentControlFeaturesMESA
+                                                          , PhysicalDeviceImageAlignmentControlPropertiesMESA
+                                                          ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data ImageAlignmentControlCreateInfoMESA
+
+instance ToCStruct ImageAlignmentControlCreateInfoMESA
+instance Show ImageAlignmentControlCreateInfoMESA
+
+instance FromCStruct ImageAlignmentControlCreateInfoMESA
+
+
+data PhysicalDeviceImageAlignmentControlFeaturesMESA
+
+instance ToCStruct PhysicalDeviceImageAlignmentControlFeaturesMESA
+instance Show PhysicalDeviceImageAlignmentControlFeaturesMESA
+
+instance FromCStruct PhysicalDeviceImageAlignmentControlFeaturesMESA
+
+
+data PhysicalDeviceImageAlignmentControlPropertiesMESA
+
+instance ToCStruct PhysicalDeviceImageAlignmentControlPropertiesMESA
+instance Show PhysicalDeviceImageAlignmentControlPropertiesMESA
+
+instance FromCStruct PhysicalDeviceImageAlignmentControlPropertiesMESA
+
diff --git a/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs b/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs
--- a/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs
+++ b/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs
@@ -3,7 +3,7 @@
 --
 -- VK_MSFT_layered_driver - device extension
 --
--- == VK_MSFT_layered_driver
+-- = VK_MSFT_layered_driver
 --
 -- [__Name String__]
 --     @VK_MSFT_layered_driver@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -82,8 +84,7 @@
 --
 -- == See Also
 --
--- 'LayeredDriverUnderlyingApiMSFT',
--- 'PhysicalDeviceLayeredDriverPropertiesMSFT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs-boot b/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs-boot
--- a/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs-boot
+++ b/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_MSFT_layered_driver - device extension
 --
--- == VK_MSFT_layered_driver
+-- = VK_MSFT_layered_driver
 --
 -- [__Name String__]
 --     @VK_MSFT_layered_driver@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -82,8 +84,7 @@
 --
 -- == See Also
 --
--- 'LayeredDriverUnderlyingApiMSFT',
--- 'PhysicalDeviceLayeredDriverPropertiesMSFT'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_MVK_ios_surface - instance extension
 --
--- == VK_MVK_ios_surface
+-- = VK_MVK_ios_surface
 --
 -- [__Name String__]
 --     @VK_MVK_ios_surface@
@@ -102,8 +102,7 @@
 --
 -- == See Also
 --
--- 'IOSSurfaceCreateFlagsMVK', 'IOSSurfaceCreateInfoMVK',
--- 'createIOSSurfaceMVK'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -190,30 +189,13 @@
 
 -- | vkCreateIOSSurfaceMVK - Create a VkSurfaceKHR object for an iOS UIView
 --
--- = Parameters
---
--- Note
+-- = Description
 --
 -- The 'createIOSSurfaceMVK' function is considered deprecated and has been
 -- superseded by
 -- 'Vulkan.Extensions.VK_EXT_metal_surface.createMetalSurfaceEXT' from the
 -- @VK_EXT_metal_surface@ extension.
 --
--- = Description
---
--- -   @instance@ is the instance with which to associate the surface.
---
--- -   @pCreateInfo@ is a pointer to a 'IOSSurfaceCreateInfoMVK' structure
---     containing parameters affecting the creation of the surface object.
---
--- -   @pAllocator@ is the allocator used for host memory allocated for the
---     surface object when there is no more specific allocator available
---     (see
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).
---
--- -   @pSurface@ is a pointer to a 'Vulkan.Extensions.Handles.SurfaceKHR'
---     handle in which the created surface object is returned.
---
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCreateIOSSurfaceMVK-instance-parameter# @instance@ /must/ be
@@ -252,11 +234,14 @@
 -- 'Vulkan.Extensions.Handles.SurfaceKHR'
 createIOSSurfaceMVK :: forall io
                      . (MonadIO io)
-                    => -- No documentation found for Nested "vkCreateIOSSurfaceMVK" "instance"
+                    => -- | @instance@ is the instance with which to associate the surface.
                        Instance
-                    -> -- No documentation found for Nested "vkCreateIOSSurfaceMVK" "pCreateInfo"
+                    -> -- | @pCreateInfo@ is a pointer to a 'IOSSurfaceCreateInfoMVK' structure
+                       -- containing parameters affecting the creation of the surface object.
                        IOSSurfaceCreateInfoMVK
-                    -> -- No documentation found for Nested "vkCreateIOSSurfaceMVK" "pAllocator"
+                    -> -- | @pAllocator@ is the allocator used for host memory allocated for the
+                       -- surface object when there is no more specific allocator available (see
+                       -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).
                        ("allocator" ::: Maybe AllocationCallbacks)
                     -> io (SurfaceKHR)
 createIOSSurfaceMVK instance' createInfo allocator = liftIO . evalContT $ do
@@ -370,7 +355,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_ios_surface VK_MVK_ios_surface>,
--- 'IOSSurfaceCreateInfoMVK'
+-- 'Vulkan.Core10.FundamentalTypes.Flags', 'IOSSurfaceCreateInfoMVK'
 newtype IOSSurfaceCreateFlagsMVK = IOSSurfaceCreateFlagsMVK Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_MVK_ios_surface - instance extension
 --
--- == VK_MVK_ios_surface
+-- = VK_MVK_ios_surface
 --
 -- [__Name String__]
 --     @VK_MVK_ios_surface@
@@ -102,8 +102,7 @@
 --
 -- == See Also
 --
--- 'IOSSurfaceCreateFlagsMVK', 'IOSSurfaceCreateInfoMVK',
--- 'createIOSSurfaceMVK'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_MVK_macos_surface - instance extension
 --
--- == VK_MVK_macos_surface
+-- = VK_MVK_macos_surface
 --
 -- [__Name String__]
 --     @VK_MVK_macos_surface@
@@ -102,8 +102,7 @@
 --
 -- == See Also
 --
--- 'MacOSSurfaceCreateFlagsMVK', 'MacOSSurfaceCreateInfoMVK',
--- 'createMacOSSurfaceMVK'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -191,31 +190,13 @@
 -- | vkCreateMacOSSurfaceMVK - Create a VkSurfaceKHR object for a macOS
 -- NSView
 --
--- = Parameters
---
--- Note
+-- = Description
 --
 -- The 'createMacOSSurfaceMVK' function is considered deprecated and has
 -- been superseded by
 -- 'Vulkan.Extensions.VK_EXT_metal_surface.createMetalSurfaceEXT' from the
 -- @VK_EXT_metal_surface@ extension.
 --
--- = Description
---
--- -   @instance@ is the instance with which to associate the surface.
---
--- -   @pCreateInfo@ is a pointer to a 'MacOSSurfaceCreateInfoMVK'
---     structure containing parameters affecting the creation of the
---     surface object.
---
--- -   @pAllocator@ is the allocator used for host memory allocated for the
---     surface object when there is no more specific allocator available
---     (see
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).
---
--- -   @pSurface@ is a pointer to a 'Vulkan.Extensions.Handles.SurfaceKHR'
---     handle in which the created surface object is returned.
---
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCreateMacOSSurfaceMVK-instance-parameter# @instance@ /must/
@@ -255,11 +236,14 @@
 -- 'Vulkan.Extensions.Handles.SurfaceKHR'
 createMacOSSurfaceMVK :: forall io
                        . (MonadIO io)
-                      => -- No documentation found for Nested "vkCreateMacOSSurfaceMVK" "instance"
+                      => -- | @instance@ is the instance with which to associate the surface.
                          Instance
-                      -> -- No documentation found for Nested "vkCreateMacOSSurfaceMVK" "pCreateInfo"
+                      -> -- | @pCreateInfo@ is a pointer to a 'MacOSSurfaceCreateInfoMVK' structure
+                         -- containing parameters affecting the creation of the surface object.
                          MacOSSurfaceCreateInfoMVK
-                      -> -- No documentation found for Nested "vkCreateMacOSSurfaceMVK" "pAllocator"
+                      -> -- | @pAllocator@ is the allocator used for host memory allocated for the
+                         -- surface object when there is no more specific allocator available (see
+                         -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).
                          ("allocator" ::: Maybe AllocationCallbacks)
                       -> io (SurfaceKHR)
 createMacOSSurfaceMVK instance' createInfo allocator = liftIO . evalContT $ do
@@ -374,7 +358,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_macos_surface VK_MVK_macos_surface>,
--- 'MacOSSurfaceCreateInfoMVK'
+-- 'Vulkan.Core10.FundamentalTypes.Flags', 'MacOSSurfaceCreateInfoMVK'
 newtype MacOSSurfaceCreateFlagsMVK = MacOSSurfaceCreateFlagsMVK Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_MVK_macos_surface - instance extension
 --
--- == VK_MVK_macos_surface
+-- = VK_MVK_macos_surface
 --
 -- [__Name String__]
 --     @VK_MVK_macos_surface@
@@ -102,8 +102,7 @@
 --
 -- == See Also
 --
--- 'MacOSSurfaceCreateFlagsMVK', 'MacOSSurfaceCreateInfoMVK',
--- 'createMacOSSurfaceMVK'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NN_vi_surface - instance extension
 --
--- == VK_NN_vi_surface
+-- = VK_NN_vi_surface
 --
 -- [__Name String__]
 --     @VK_NN_vi_surface@
@@ -100,7 +100,7 @@
 --
 -- == See Also
 --
--- 'ViSurfaceCreateFlagsNN', 'ViSurfaceCreateInfoNN', 'createViSurfaceNN'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -345,7 +345,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NN_vi_surface VK_NN_vi_surface>,
--- 'ViSurfaceCreateInfoNN'
+-- 'Vulkan.Core10.FundamentalTypes.Flags', 'ViSurfaceCreateInfoNN'
 newtype ViSurfaceCreateFlagsNN = ViSurfaceCreateFlagsNN Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_NN_vi_surface - instance extension
 --
--- == VK_NN_vi_surface
+-- = VK_NN_vi_surface
 --
 -- [__Name String__]
 --     @VK_NN_vi_surface@
@@ -100,7 +100,7 @@
 --
 -- == See Also
 --
--- 'ViSurfaceCreateFlagsNN', 'ViSurfaceCreateInfoNN', 'createViSurfaceNN'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NVX_binary_import - device extension
 --
--- == VK_NVX_binary_import
+-- = VK_NVX_binary_import
 --
 -- [__Name String__]
 --     @VK_NVX_binary_import@
@@ -15,7 +15,7 @@
 --     30
 --
 -- [__Revision__]
---     1
+--     2
 --
 -- [__Ratification Status__]
 --     Not ratified
@@ -38,7 +38,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2021-04-09
+--     2024-11-04
 --
 -- [__Contributors__]
 --
@@ -51,8 +51,6 @@
 -- This extension allows applications to import CuBIN binaries and execute
 -- them.
 --
--- Note
---
 -- There is currently no specification language written for this extension.
 -- The links to APIs defined by the extension are to stubs that only
 -- include generated content such as API declarations and implicit valid
@@ -84,6 +82,10 @@
 --
 -- -   'CuModuleCreateInfoNVX'
 --
+-- -   Extending 'CuModuleCreateInfoNVX':
+--
+--     -   'CuModuleTexturingModeCreateInfoNVX'
+--
 -- == New Enum Constants
 --
 -- -   'NVX_BINARY_IMPORT_EXTENSION_NAME'
@@ -104,6 +106,8 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX'
 --
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_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:
@@ -279,11 +283,33 @@
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX'
 --
 -- -   #VUID-VkCuModuleCreateInfoNVX-pNext-pNext# @pNext@ /must/ be @NULL@
+--     or a pointer to a valid instance of
+--     'CuModuleTexturingModeCreateInfoNVX'
 --
+-- -   #VUID-VkCuModuleCreateInfoNVX-sType-unique# The @sType@ value of
+--     each struct in the @pNext@ chain /must/ be unique
+--
 -- -   #VUID-VkCuModuleCreateInfoNVX-pData-parameter# If @dataSize@ is not
 --     @0@, @pData@ /must/ be a valid pointer to an array of @dataSize@
 --     bytes
 --
+-- 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.
+--
+-- > // Provided by VK_NVX_binary_import
+-- > typedef struct VkCuModuleTexturingModeCreateInfoNVX {
+-- >     VkStructureType    sType;
+-- >     const void*        pNext;
+-- >     VkBool32           use64bitTexturing;
+-- > } VkCuModuleTexturingModeCreateInfoNVX;
+--
+-- === Valid Usage (Implicit)
+--
+-- -   #VUID-VkCuModuleTexturingModeCreateInfoNVX-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX'
+--
 -- There is currently no specification language written for this command.
 -- This section acts only as placeholder and to avoid dead links in the
 -- specification and reference pages.
@@ -396,17 +422,17 @@
 --
 -- == Version History
 --
+-- -   Revision 2, 2024-11-04 (Liam Middlebrook)
+--
+--     -   Add 'CuModuleTexturingModeCreateInfoNVX'
+--
 -- -   Revision 1, 2021-04-09 (Eric Werness)
 --
 --     -   Internal revisions
 --
 -- == See Also
 --
--- 'CuFunctionCreateInfoNVX', 'Vulkan.Extensions.Handles.CuFunctionNVX',
--- 'CuLaunchInfoNVX', 'CuModuleCreateInfoNVX',
--- 'Vulkan.Extensions.Handles.CuModuleNVX', 'cmdCuLaunchKernelNVX',
--- 'createCuFunctionNVX', 'createCuModuleNVX', 'destroyCuFunctionNVX',
--- 'destroyCuModuleNVX'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -423,6 +449,7 @@
                                                , destroyCuFunctionNVX
                                                , cmdCuLaunchKernelNVX
                                                , CuModuleCreateInfoNVX(..)
+                                               , CuModuleTexturingModeCreateInfoNVX(..)
                                                , CuFunctionCreateInfoNVX(..)
                                                , CuLaunchInfoNVX(..)
                                                , NVX_BINARY_IMPORT_SPEC_VERSION
@@ -438,11 +465,13 @@
 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 GHC.Base (when)
 import GHC.IO (throwIO)
+import GHC.Ptr (castPtr)
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
@@ -461,6 +490,7 @@
 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.C.Types (CSize)
@@ -482,8 +512,13 @@
 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.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))
@@ -501,13 +536,22 @@
 import Vulkan.Dynamic (DeviceCmds(pVkDestroyCuFunctionNVX))
 import Vulkan.Dynamic (DeviceCmds(pVkDestroyCuModuleNVX))
 import Vulkan.Core10.Handles (Device_T)
+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.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_CU_FUNCTION_CREATE_INFO_NVX))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (CuFunctionNVX(..))
 import Vulkan.Extensions.Handles (CuModuleNVX(..))
@@ -517,7 +561,7 @@
   unsafe
 #endif
   "dynamic" mkVkCreateCuModuleNVX
-  :: FunPtr (Ptr Device_T -> Ptr CuModuleCreateInfoNVX -> Ptr AllocationCallbacks -> Ptr CuModuleNVX -> IO Result) -> Ptr Device_T -> Ptr CuModuleCreateInfoNVX -> Ptr AllocationCallbacks -> Ptr CuModuleNVX -> IO Result
+  :: FunPtr (Ptr Device_T -> Ptr (SomeStruct CuModuleCreateInfoNVX) -> Ptr AllocationCallbacks -> Ptr CuModuleNVX -> IO Result) -> Ptr Device_T -> Ptr (SomeStruct CuModuleCreateInfoNVX) -> Ptr AllocationCallbacks -> Ptr CuModuleNVX -> IO Result
 
 -- | vkCreateCuModuleNVX - Stub description of vkCreateCuModuleNVX
 --
@@ -555,12 +599,12 @@
 -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
 -- 'CuModuleCreateInfoNVX', 'Vulkan.Extensions.Handles.CuModuleNVX',
 -- 'Vulkan.Core10.Handles.Device'
-createCuModuleNVX :: forall io
-                   . (MonadIO io)
+createCuModuleNVX :: forall a io
+                   . (Extendss CuModuleCreateInfoNVX a, PokeChain a, MonadIO io)
                   => -- No documentation found for Nested "vkCreateCuModuleNVX" "device"
                      Device
                   -> -- No documentation found for Nested "vkCreateCuModuleNVX" "pCreateInfo"
-                     CuModuleCreateInfoNVX
+                     (CuModuleCreateInfoNVX a)
                   -> -- No documentation found for Nested "vkCreateCuModuleNVX" "pAllocator"
                      ("allocator" ::: Maybe AllocationCallbacks)
                   -> io (CuModuleNVX)
@@ -576,7 +620,7 @@
   pPModule <- ContT $ bracket (callocBytes @CuModuleNVX 8) free
   r <- lift $ traceAroundEvent "vkCreateCuModuleNVX" (vkCreateCuModuleNVX'
                                                         (deviceHandle (device))
-                                                        pCreateInfo
+                                                        (forgetExtensions pCreateInfo)
                                                         pAllocator
                                                         (pPModule))
   lift $ when (r < SUCCESS) (throwIO (VulkanException r))
@@ -591,7 +635,7 @@
 -- favourite resource management library) as the last argument.
 -- To just extract the pair pass '(,)' as the last argument.
 --
-withCuModuleNVX :: forall io r . MonadIO io => Device -> CuModuleCreateInfoNVX -> Maybe AllocationCallbacks -> (io CuModuleNVX -> (CuModuleNVX -> io ()) -> r) -> r
+withCuModuleNVX :: forall a io r . (Extendss CuModuleCreateInfoNVX a, PokeChain a, MonadIO io) => Device -> CuModuleCreateInfoNVX a -> Maybe AllocationCallbacks -> (io CuModuleNVX -> (CuModuleNVX -> io ()) -> r) -> r
 withCuModuleNVX device pCreateInfo pAllocator b =
   b (createCuModuleNVX device pCreateInfo pAllocator)
     (\(o0) -> destroyCuModuleNVX device o0 pAllocator)
@@ -866,7 +910,12 @@
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX'
 --
 -- -   #VUID-VkCuModuleCreateInfoNVX-pNext-pNext# @pNext@ /must/ be @NULL@
+--     or a pointer to a valid instance of
+--     'CuModuleTexturingModeCreateInfoNVX'
 --
+-- -   #VUID-VkCuModuleCreateInfoNVX-sType-unique# The @sType@ value of
+--     each struct in the @pNext@ chain /must/ be unique
+--
 -- -   #VUID-VkCuModuleCreateInfoNVX-pData-parameter# If @dataSize@ is not
 --     @0@, @pData@ /must/ be a valid pointer to an array of @dataSize@
 --     bytes
@@ -875,50 +924,113 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_import VK_NVX_binary_import>,
 -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'createCuModuleNVX'
-data CuModuleCreateInfoNVX = CuModuleCreateInfoNVX
-  { -- No documentation found for Nested "VkCuModuleCreateInfoNVX" "dataSize"
+data CuModuleCreateInfoNVX (es :: [Type]) = CuModuleCreateInfoNVX
+  { -- No documentation found for Nested "VkCuModuleCreateInfoNVX" "pNext"
+    next :: Chain es
+  , -- No documentation found for Nested "VkCuModuleCreateInfoNVX" "dataSize"
     dataSize :: Word64
   , -- No documentation found for Nested "VkCuModuleCreateInfoNVX" "pData"
     data' :: Ptr ()
   }
   deriving (Typeable)
 #if defined(GENERIC_INSTANCES)
-deriving instance Generic (CuModuleCreateInfoNVX)
+deriving instance Generic (CuModuleCreateInfoNVX (es :: [Type]))
 #endif
-deriving instance Show CuModuleCreateInfoNVX
+deriving instance Show (Chain es) => Show (CuModuleCreateInfoNVX es)
 
-instance ToCStruct CuModuleCreateInfoNVX where
+instance Extensible CuModuleCreateInfoNVX where
+  extensibleTypeName = "CuModuleCreateInfoNVX"
+  setNext CuModuleCreateInfoNVX{..} next' = CuModuleCreateInfoNVX{next = next', ..}
+  getNext CuModuleCreateInfoNVX{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends CuModuleCreateInfoNVX e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @CuModuleTexturingModeCreateInfoNVX = Just f
+    | otherwise = Nothing
+
+instance ( Extendss CuModuleCreateInfoNVX es
+         , PokeChain es ) => ToCStruct (CuModuleCreateInfoNVX es) where
   withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p CuModuleCreateInfoNVX{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX)
+  pokeCStruct p CuModuleCreateInfoNVX{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    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 = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)
+    lift $ f
+
+instance ( Extendss CuModuleCreateInfoNVX es
+         , PeekChain es ) => FromCStruct (CuModuleCreateInfoNVX es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    dataSize <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))
+    pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))
+    pure $ CuModuleCreateInfoNVX
+             next (coerce @CSize @Word64 dataSize) pData
+
+instance es ~ '[] => Zero (CuModuleCreateInfoNVX es) where
+  zero = CuModuleCreateInfoNVX
+           ()
+           zero
+           zero
+
+
+-- | VkCuModuleTexturingModeCreateInfoNVX - Stub description of
+-- VkCuModuleTexturingModeCreateInfoNVX
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_import VK_NVX_binary_import>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data CuModuleTexturingModeCreateInfoNVX = CuModuleTexturingModeCreateInfoNVX
+  { -- No documentation found for Nested "VkCuModuleTexturingModeCreateInfoNVX" "use64bitTexturing"
+    use64bitTexturing :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (CuModuleTexturingModeCreateInfoNVX)
+#endif
+deriving instance Show CuModuleTexturingModeCreateInfoNVX
+
+instance ToCStruct CuModuleTexturingModeCreateInfoNVX where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p CuModuleTexturingModeCreateInfoNVX{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX)
     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (dataSize))
-    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (data')
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (use64bitTexturing))
     f
-  cStructSize = 32
+  cStructSize = 24
   cStructAlignment = 8
   pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX)
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX)
     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
     f
 
-instance FromCStruct CuModuleCreateInfoNVX where
+instance FromCStruct CuModuleTexturingModeCreateInfoNVX where
   peekCStruct p = do
-    dataSize <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))
-    pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))
-    pure $ CuModuleCreateInfoNVX
-             (coerce @CSize @Word64 dataSize) pData
+    use64bitTexturing <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ CuModuleTexturingModeCreateInfoNVX
+             (bool32ToBool use64bitTexturing)
 
-instance Storable CuModuleCreateInfoNVX where
-  sizeOf ~_ = 32
+instance Storable CuModuleTexturingModeCreateInfoNVX where
+  sizeOf ~_ = 24
   alignment ~_ = 8
   peek = peekCStruct
   poke ptr poked = pokeCStruct ptr poked (pure ())
 
-instance Zero CuModuleCreateInfoNVX where
-  zero = CuModuleCreateInfoNVX
-           zero
+instance Zero CuModuleTexturingModeCreateInfoNVX where
+  zero = CuModuleTexturingModeCreateInfoNVX
            zero
 
 
@@ -1111,11 +1223,11 @@
            mempty
 
 
-type NVX_BINARY_IMPORT_SPEC_VERSION = 1
+type NVX_BINARY_IMPORT_SPEC_VERSION = 2
 
 -- No documentation found for TopLevel "VK_NVX_BINARY_IMPORT_SPEC_VERSION"
 pattern NVX_BINARY_IMPORT_SPEC_VERSION :: forall a . Integral a => a
-pattern NVX_BINARY_IMPORT_SPEC_VERSION = 1
+pattern NVX_BINARY_IMPORT_SPEC_VERSION = 2
 
 
 type NVX_BINARY_IMPORT_EXTENSION_NAME = "VK_NVX_binary_import"
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
@@ -3,7 +3,7 @@
 --
 -- VK_NVX_binary_import - device extension
 --
--- == VK_NVX_binary_import
+-- = VK_NVX_binary_import
 --
 -- [__Name String__]
 --     @VK_NVX_binary_import@
@@ -15,7 +15,7 @@
 --     30
 --
 -- [__Revision__]
---     1
+--     2
 --
 -- [__Ratification Status__]
 --     Not ratified
@@ -38,7 +38,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2021-04-09
+--     2024-11-04
 --
 -- [__Contributors__]
 --
@@ -51,8 +51,6 @@
 -- This extension allows applications to import CuBIN binaries and execute
 -- them.
 --
--- Note
---
 -- There is currently no specification language written for this extension.
 -- The links to APIs defined by the extension are to stubs that only
 -- include generated content such as API declarations and implicit valid
@@ -84,6 +82,10 @@
 --
 -- -   'CuModuleCreateInfoNVX'
 --
+-- -   Extending 'CuModuleCreateInfoNVX':
+--
+--     -   'CuModuleTexturingModeCreateInfoNVX'
+--
 -- == New Enum Constants
 --
 -- -   'NVX_BINARY_IMPORT_EXTENSION_NAME'
@@ -104,6 +106,8 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX'
 --
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_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:
@@ -279,11 +283,33 @@
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX'
 --
 -- -   #VUID-VkCuModuleCreateInfoNVX-pNext-pNext# @pNext@ /must/ be @NULL@
+--     or a pointer to a valid instance of
+--     'CuModuleTexturingModeCreateInfoNVX'
 --
+-- -   #VUID-VkCuModuleCreateInfoNVX-sType-unique# The @sType@ value of
+--     each struct in the @pNext@ chain /must/ be unique
+--
 -- -   #VUID-VkCuModuleCreateInfoNVX-pData-parameter# If @dataSize@ is not
 --     @0@, @pData@ /must/ be a valid pointer to an array of @dataSize@
 --     bytes
 --
+-- 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.
+--
+-- > // Provided by VK_NVX_binary_import
+-- > typedef struct VkCuModuleTexturingModeCreateInfoNVX {
+-- >     VkStructureType    sType;
+-- >     const void*        pNext;
+-- >     VkBool32           use64bitTexturing;
+-- > } VkCuModuleTexturingModeCreateInfoNVX;
+--
+-- === Valid Usage (Implicit)
+--
+-- -   #VUID-VkCuModuleTexturingModeCreateInfoNVX-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX'
+--
 -- There is currently no specification language written for this command.
 -- This section acts only as placeholder and to avoid dead links in the
 -- specification and reference pages.
@@ -396,17 +422,17 @@
 --
 -- == Version History
 --
+-- -   Revision 2, 2024-11-04 (Liam Middlebrook)
+--
+--     -   Add 'CuModuleTexturingModeCreateInfoNVX'
+--
 -- -   Revision 1, 2021-04-09 (Eric Werness)
 --
 --     -   Internal revisions
 --
 -- == See Also
 --
--- 'CuFunctionCreateInfoNVX', 'Vulkan.Extensions.Handles.CuFunctionNVX',
--- 'CuLaunchInfoNVX', 'CuModuleCreateInfoNVX',
--- 'Vulkan.Extensions.Handles.CuModuleNVX', 'cmdCuLaunchKernelNVX',
--- 'createCuFunctionNVX', 'createCuModuleNVX', 'destroyCuFunctionNVX',
--- 'destroyCuModuleNVX'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -418,12 +444,16 @@
 module Vulkan.Extensions.VK_NVX_binary_import  ( CuFunctionCreateInfoNVX
                                                , CuLaunchInfoNVX
                                                , CuModuleCreateInfoNVX
+                                               , CuModuleTexturingModeCreateInfoNVX
                                                ) 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 CuFunctionCreateInfoNVX
 
 instance ToCStruct CuFunctionCreateInfoNVX
@@ -440,10 +470,21 @@
 instance FromCStruct CuLaunchInfoNVX
 
 
-data CuModuleCreateInfoNVX
+type role CuModuleCreateInfoNVX nominal
+data CuModuleCreateInfoNVX (es :: [Type])
 
-instance ToCStruct CuModuleCreateInfoNVX
-instance Show CuModuleCreateInfoNVX
+instance ( Extendss CuModuleCreateInfoNVX es
+         , PokeChain es ) => ToCStruct (CuModuleCreateInfoNVX es)
+instance Show (Chain es) => Show (CuModuleCreateInfoNVX es)
 
-instance FromCStruct CuModuleCreateInfoNVX
+instance ( Extendss CuModuleCreateInfoNVX es
+         , PeekChain es ) => FromCStruct (CuModuleCreateInfoNVX es)
+
+
+data CuModuleTexturingModeCreateInfoNVX
+
+instance ToCStruct CuModuleTexturingModeCreateInfoNVX
+instance Show CuModuleTexturingModeCreateInfoNVX
+
+instance FromCStruct CuModuleTexturingModeCreateInfoNVX
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_NVX_image_view_handle - device extension
 --
--- == VK_NVX_image_view_handle
+-- = VK_NVX_image_view_handle
 --
 -- [__Name String__]
 --     @VK_NVX_image_view_handle@
@@ -15,7 +15,7 @@
 --     31
 --
 -- [__Revision__]
---     2
+--     3
 --
 -- [__Ratification Status__]
 --     Not ratified
@@ -31,7 +31,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2020-04-03
+--     2024-11-04
 --
 -- [__Contributors__]
 --
@@ -41,6 +41,8 @@
 --
 --     -   Daniel Koch, NVIDIA
 --
+--     -   Liam Middlebrook, NVIDIA
+--
 -- == Description
 --
 -- This extension allows applications to query an opaque handle from an
@@ -51,6 +53,8 @@
 --
 -- -   'getImageViewAddressNVX'
 --
+-- -   'getImageViewHandle64NVX'
+--
 -- -   'getImageViewHandleNVX'
 --
 -- == New Structures
@@ -73,6 +77,10 @@
 --
 -- == Version History
 --
+-- -   Revision 3, 2024-11-04 (Liam Middlebrook)
+--
+--     -   Add 'getImageViewHandle64NVX'
+--
 -- -   Revision 2, 2020-04-03 (Piers Daniell)
 --
 --     -   Add 'getImageViewAddressNVX'
@@ -83,8 +91,7 @@
 --
 -- == See Also
 --
--- 'ImageViewAddressPropertiesNVX', 'ImageViewHandleInfoNVX',
--- 'getImageViewAddressNVX', 'getImageViewHandleNVX'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -94,6 +101,7 @@
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NVX_image_view_handle  ( getImageViewHandleNVX
+                                                   , getImageViewHandle64NVX
                                                    , getImageViewAddressNVX
                                                    , ImageViewHandleInfoNVX(..)
                                                    , ImageViewAddressPropertiesNVX(..)
@@ -132,6 +140,7 @@
 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.Enums.DescriptorType (DescriptorType)
@@ -140,6 +149,7 @@
 import Vulkan.Core10.Handles (Device(Device))
 import Vulkan.Core10.FundamentalTypes (DeviceAddress)
 import Vulkan.Dynamic (DeviceCmds(pVkGetImageViewAddressNVX))
+import Vulkan.Dynamic (DeviceCmds(pVkGetImageViewHandle64NVX))
 import Vulkan.Dynamic (DeviceCmds(pVkGetImageViewHandleNVX))
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
 import Vulkan.Core10.Handles (Device_T)
@@ -198,6 +208,47 @@
 #if !defined(SAFE_FOREIGN_CALLS)
   unsafe
 #endif
+  "dynamic" mkVkGetImageViewHandle64NVX
+  :: FunPtr (Ptr Device_T -> Ptr ImageViewHandleInfoNVX -> IO Word64) -> Ptr Device_T -> Ptr ImageViewHandleInfoNVX -> IO Word64
+
+-- | vkGetImageViewHandle64NVX - Get the 64-bit handle for an image view for
+-- a specific descriptor type
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_image_view_handle VK_NVX_image_view_handle>,
+-- 'Vulkan.Core10.Handles.Device', 'ImageViewHandleInfoNVX'
+getImageViewHandle64NVX :: forall io
+                         . (MonadIO io)
+                        => -- | @device@ is the logical device that owns the image view.
+                           --
+                           -- #VUID-vkGetImageViewHandle64NVX-device-parameter# @device@ /must/ be a
+                           -- valid 'Vulkan.Core10.Handles.Device' handle
+                           Device
+                        -> -- | @pInfo@ describes the image view to query and type of handle.
+                           --
+                           -- #VUID-vkGetImageViewHandle64NVX-pInfo-parameter# @pInfo@ /must/ be a
+                           -- valid pointer to a valid 'ImageViewHandleInfoNVX' structure
+                           ImageViewHandleInfoNVX
+                        -> io (Word64)
+getImageViewHandle64NVX device info = liftIO . evalContT $ do
+  let vkGetImageViewHandle64NVXPtr = pVkGetImageViewHandle64NVX (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetImageViewHandle64NVXPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageViewHandle64NVX is null" Nothing Nothing
+  let vkGetImageViewHandle64NVX' = mkVkGetImageViewHandle64NVX vkGetImageViewHandle64NVXPtr
+  pInfo <- ContT $ withCStruct (info)
+  r <- lift $ traceAroundEvent "vkGetImageViewHandle64NVX" (vkGetImageViewHandle64NVX'
+                                                              (deviceHandle (device))
+                                                              pInfo)
+  pure $ (r)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
   "dynamic" mkVkGetImageViewAddressNVX
   :: FunPtr (Ptr Device_T -> ImageView -> Ptr ImageViewAddressPropertiesNVX -> IO Result) -> Ptr Device_T -> ImageView -> Ptr ImageViewAddressPropertiesNVX -> IO Result
 
@@ -213,8 +264,6 @@
 --
 --     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
 --
---     -   'Vulkan.Core10.Enums.Result.ERROR_UNKNOWN'
---
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_image_view_handle VK_NVX_image_view_handle>,
@@ -312,7 +361,7 @@
 -- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType',
 -- 'Vulkan.Core10.Handles.ImageView', 'Vulkan.Core10.Handles.Sampler',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType',
--- 'getImageViewHandleNVX'
+-- 'getImageViewHandle64NVX', 'getImageViewHandleNVX'
 data ImageViewHandleInfoNVX = ImageViewHandleInfoNVX
   { -- | @imageView@ is the image view to query.
     imageView :: ImageView
@@ -427,11 +476,11 @@
            zero
 
 
-type NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION = 2
+type NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION = 3
 
 -- No documentation found for TopLevel "VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION"
 pattern NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION :: forall a . Integral a => a
-pattern NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION = 2
+pattern NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION = 3
 
 
 type NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME = "VK_NVX_image_view_handle"
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
@@ -3,7 +3,7 @@
 --
 -- VK_NVX_image_view_handle - device extension
 --
--- == VK_NVX_image_view_handle
+-- = VK_NVX_image_view_handle
 --
 -- [__Name String__]
 --     @VK_NVX_image_view_handle@
@@ -15,7 +15,7 @@
 --     31
 --
 -- [__Revision__]
---     2
+--     3
 --
 -- [__Ratification Status__]
 --     Not ratified
@@ -31,7 +31,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2020-04-03
+--     2024-11-04
 --
 -- [__Contributors__]
 --
@@ -41,6 +41,8 @@
 --
 --     -   Daniel Koch, NVIDIA
 --
+--     -   Liam Middlebrook, NVIDIA
+--
 -- == Description
 --
 -- This extension allows applications to query an opaque handle from an
@@ -51,6 +53,8 @@
 --
 -- -   'getImageViewAddressNVX'
 --
+-- -   'getImageViewHandle64NVX'
+--
 -- -   'getImageViewHandleNVX'
 --
 -- == New Structures
@@ -73,6 +77,10 @@
 --
 -- == Version History
 --
+-- -   Revision 3, 2024-11-04 (Liam Middlebrook)
+--
+--     -   Add 'getImageViewHandle64NVX'
+--
 -- -   Revision 2, 2020-04-03 (Piers Daniell)
 --
 --     -   Add 'getImageViewAddressNVX'
@@ -83,8 +91,7 @@
 --
 -- == See Also
 --
--- 'ImageViewAddressPropertiesNVX', 'ImageViewHandleInfoNVX',
--- 'getImageViewAddressNVX', 'getImageViewHandleNVX'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NVX_multiview_per_view_attributes - device extension
 --
--- == VK_NVX_multiview_per_view_attributes
+-- = VK_NVX_multiview_per_view_attributes
 --
 -- [__Name String__]
 --     @VK_NVX_multiview_per_view_attributes@
@@ -22,7 +22,15 @@
 --
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_multiview VK_KHR_multiview>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_KHR_dynamic_rendering
+--
 -- [__SPIR-V Dependencies__]
 --
 --     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NVX/SPV_NVX_multiview_per_view_attributes.html SPV_NVX_multiview_per_view_attributes>
@@ -43,7 +51,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nvx/GL_NVX_multiview_per_view_attributes.txt GL_NVX_multiview_per_view_attributes>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nvx/GL_NVX_multiview_per_view_attributes.txt GL_NVX_multiview_per_view_attributes>
 --
 --     -   This extension interacts with @VK_NV_viewport_array2@.
 --
@@ -85,8 +93,8 @@
 -- subpass. Implementations are free to either use the per-view outputs or
 -- the non-per-view outputs, whichever would be more efficient.
 --
--- If @VK_NV_viewport_array2@ is not also supported and enabled, the
--- per-view viewport mask /must/ not be used.
+-- If the @VK_NV_viewport_array2@ extension is not also supported and
+-- enabled, the per-view viewport mask /must/ not be used.
 --
 -- == New Structures
 --
@@ -95,6 +103,19 @@
 --
 --     -   'PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.CommandBuffer.CommandBufferInheritanceInfo',
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':
+--
+--     -   'MultiviewPerViewAttributesInfoNVX'
+--
 -- == New Enum Constants
 --
 -- -   'NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME'
@@ -112,6 +133,16 @@
 --
 --     -   'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX'
+--
 -- == New Built-In Variables
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-positionperview PositionPerViewNV>
@@ -149,7 +180,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -159,6 +190,7 @@
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NVX_multiview_per_view_attributes  ( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(..)
+                                                               , MultiviewPerViewAttributesInfoNVX(..)
                                                                , NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION
                                                                , pattern NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION
                                                                , NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME
@@ -186,6 +218,7 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX))
 -- | VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX - Structure
 -- describing multiview limits that can be supported by an implementation
@@ -248,6 +281,92 @@
 
 instance Zero PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX where
   zero = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+           zero
+
+
+-- | VkMultiviewPerViewAttributesInfoNVX - Structure specifying the multiview
+-- per-attribute properties
+--
+-- = Description
+--
+-- When dynamic render pass instances are being used, instead of specifying
+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX'
+-- or
+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX'
+-- in the subpass description flags, the per-attribute properties of the
+-- render pass instance /must/ be specified by the
+-- 'MultiviewPerViewAttributesInfoNVX' structure Include the
+-- 'MultiviewPerViewAttributesInfoNVX' structure in the @pNext@ chain of
+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' when creating a
+-- graphics pipeline for dynamic rendering,
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+-- when starting a dynamic render pass instance, and
+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' when
+-- specifying the dynamic render pass instance parameters for secondary
+-- command buffers.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data MultiviewPerViewAttributesInfoNVX = MultiviewPerViewAttributesInfoNVX
+  { -- | @perViewAttributes@ specifies that shaders compiled for this pipeline
+    -- write the attributes for all views in a single invocation of each vertex
+    -- processing stage. All pipelines executed within a render pass instance
+    -- that includes this bit /must/ write per-view attributes to the
+    -- @*PerViewNV[]@ shader outputs, in addition to the non-per-view (e.g.
+    -- @Position@) outputs.
+    perViewAttributes :: Bool
+  , -- | @perViewAttributesPositionXOnly@ specifies that shaders compiled for
+    -- this pipeline use per-view positions which only differ in value in the x
+    -- component. Per-view viewport mask /can/ also be used.
+    perViewAttributesPositionXOnly :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (MultiviewPerViewAttributesInfoNVX)
+#endif
+deriving instance Show MultiviewPerViewAttributesInfoNVX
+
+instance ToCStruct MultiviewPerViewAttributesInfoNVX where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p MultiviewPerViewAttributesInfoNVX{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (perViewAttributes))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (perViewAttributesPositionXOnly))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX)
+    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 MultiviewPerViewAttributesInfoNVX where
+  peekCStruct p = do
+    perViewAttributes <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    perViewAttributesPositionXOnly <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pure $ MultiviewPerViewAttributesInfoNVX
+             (bool32ToBool perViewAttributes)
+             (bool32ToBool perViewAttributesPositionXOnly)
+
+instance Storable MultiviewPerViewAttributesInfoNVX where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero MultiviewPerViewAttributesInfoNVX where
+  zero = MultiviewPerViewAttributesInfoNVX
+           zero
            zero
 
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_NVX_multiview_per_view_attributes - device extension
 --
--- == VK_NVX_multiview_per_view_attributes
+-- = VK_NVX_multiview_per_view_attributes
 --
 -- [__Name String__]
 --     @VK_NVX_multiview_per_view_attributes@
@@ -22,7 +22,15 @@
 --
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_multiview VK_KHR_multiview>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_KHR_dynamic_rendering
+--
 -- [__SPIR-V Dependencies__]
 --
 --     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NVX/SPV_NVX_multiview_per_view_attributes.html SPV_NVX_multiview_per_view_attributes>
@@ -43,7 +51,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nvx/GL_NVX_multiview_per_view_attributes.txt GL_NVX_multiview_per_view_attributes>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nvx/GL_NVX_multiview_per_view_attributes.txt GL_NVX_multiview_per_view_attributes>
 --
 --     -   This extension interacts with @VK_NV_viewport_array2@.
 --
@@ -85,8 +93,8 @@
 -- subpass. Implementations are free to either use the per-view outputs or
 -- the non-per-view outputs, whichever would be more efficient.
 --
--- If @VK_NV_viewport_array2@ is not also supported and enabled, the
--- per-view viewport mask /must/ not be used.
+-- If the @VK_NV_viewport_array2@ extension is not also supported and
+-- enabled, the per-view viewport mask /must/ not be used.
 --
 -- == New Structures
 --
@@ -95,6 +103,19 @@
 --
 --     -   'PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.CommandBuffer.CommandBufferInheritanceInfo',
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':
+--
+--     -   'MultiviewPerViewAttributesInfoNVX'
+--
 -- == New Enum Constants
 --
 -- -   'NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME'
@@ -112,6 +133,16 @@
 --
 --     -   'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX'
+--
 -- == New Built-In Variables
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-positionperview PositionPerViewNV>
@@ -149,7 +180,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -158,11 +189,21 @@
 --
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
-module Vulkan.Extensions.VK_NVX_multiview_per_view_attributes  (PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) where
+module Vulkan.Extensions.VK_NVX_multiview_per_view_attributes  ( MultiviewPerViewAttributesInfoNVX
+                                                               , PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+                                                               ) where
 
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
+
+data MultiviewPerViewAttributesInfoNVX
+
+instance ToCStruct MultiviewPerViewAttributesInfoNVX
+instance Show MultiviewPerViewAttributesInfoNVX
+
+instance FromCStruct MultiviewPerViewAttributesInfoNVX
+
 
 data PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_acquire_winrt_display - device extension
 --
--- == VK_NV_acquire_winrt_display
+-- = VK_NV_acquire_winrt_display
 --
 -- [__Name String__]
 --     @VK_NV_acquire_winrt_display@
@@ -161,7 +161,7 @@
 --
 -- == See Also
 --
--- 'acquireWinrtDisplayNV', 'getWinrtDisplayNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -234,20 +234,14 @@
 -- entity, the call /must/ return the error code
 -- 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'.
 --
--- Note
---
 -- The Vulkan instance acquires control of a
 -- <https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displaytarget “winrt::Windows::Devices::Display::Core::DisplayTarget”>
 -- by performing an operation equivalent to
 -- <https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displaymanager.tryacquiretarget “winrt::Windows::Devices::Display::Core::DisplayManager.TryAcquireTarget()”>
 -- on the “DisplayTarget”.
 --
--- Note
---
 -- One example of when Windows 10 loses access to a display is when the
 -- display is hot-unplugged.
---
--- Note
 --
 -- One example of when a display has already been acquired by another
 -- entity is when the Windows desktop compositor (DWM) is in control of the
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_clip_space_w_scaling - device extension
 --
--- == VK_NV_clip_space_w_scaling
+-- = VK_NV_clip_space_w_scaling
 --
 -- [__Name String__]
 --     @VK_NV_clip_space_w_scaling@
@@ -195,8 +195,7 @@
 --
 -- == See Also
 --
--- 'PipelineViewportWScalingStateCreateInfoNV', 'ViewportWScalingNV',
--- 'cmdSetViewportWScalingNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_clip_space_w_scaling - device extension
 --
--- == VK_NV_clip_space_w_scaling
+-- = VK_NV_clip_space_w_scaling
 --
 -- [__Name String__]
 --     @VK_NV_clip_space_w_scaling@
@@ -195,8 +195,7 @@
 --
 -- == See Also
 --
--- 'PipelineViewportWScalingStateCreateInfoNV', 'ViewportWScalingNV',
--- 'cmdSetViewportWScalingNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_NV_command_buffer_inheritance.hs b/src/Vulkan/Extensions/VK_NV_command_buffer_inheritance.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_command_buffer_inheritance.hs
@@ -0,0 +1,231 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_command_buffer_inheritance - device extension
+--
+-- = VK_NV_command_buffer_inheritance
+--
+-- [__Name String__]
+--     @VK_NV_command_buffer_inheritance@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     560
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__Contact__]
+--
+--     -   Lujin Wang
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_command_buffer_inheritance] @lujinwangnv%0A*Here describe the issue or question you have about the VK_NV_command_buffer_inheritance extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-02-15
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Daniel Story, Nintendo
+--
+-- == Description
+--
+-- This extension allows applications to take advantage of the graphics and
+-- compute state that remains valid in the queue between executions of
+-- submitted command buffers. This works across both primary and secondary
+-- command buffers.
+--
+-- The state inherited includes the previously bound pipeline state,
+-- previously bound shader objects, previously bound vertex and index
+-- buffers, previously bound descriptor sets and push constants, and all
+-- previously set dynamic state.
+--
+-- This extension relaxes the requirement that all that state needs to be
+-- bound and set after begin command buffer and before the next draw or
+-- dispatch.
+--
+-- By not having to set state that has been inherited applications can save
+-- both CPU and GPU cycles by not having to set state redundantly, and also
+-- have improved flexibility when reusing secondary command buffers.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceCommandBufferInheritanceFeaturesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME'
+--
+-- -   'NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV'
+--
+-- == Issues
+--
+-- 1) How can the validation layer know when state is valid at draw or
+-- dispatch time if it is inherited at execution time?
+--
+-- __RESOLVED__: Validation of invalid state at draw and dispatch time
+-- cannot be done while recording those commands. Instead the validation
+-- layer will need to keep track of any unset state when draw and dispatch
+-- commands are recorded, but not report an error at that time. It should
+-- also keep track of what state is valid at the end of each recorded
+-- command buffer. When secondary command buffer execution is recorded the
+-- validation layer can update its unset state tracking for that command
+-- buffer, and also for draw and dispatch commands recorded after execution
+-- of the secondary as they will inherit state from the executed secondary.
+-- This can be done recursively so every recorded primary command buffer
+-- has a final tally of any unset state used at draw and dispatch time.
+-- Finally when the primary is submitted to the queue the validation layer
+-- will know the previous primaries submitted to the queue and will know if
+-- there is any unset state used and can report the error then.
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-02-15 (Lujin Wang)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_command_buffer_inheritance 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_command_buffer_inheritance  ( PhysicalDeviceCommandBufferInheritanceFeaturesNV(..)
+                                                           , NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION
+                                                           , pattern NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION
+                                                           , NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME
+                                                           , pattern NV_COMMAND_BUFFER_INHERITANCE_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_COMMAND_BUFFER_INHERITANCE_FEATURES_NV))
+-- | VkPhysicalDeviceCommandBufferInheritanceFeaturesNV - Structure
+-- describing whether the command buffer inheritance feature is supported
+-- by an implementation
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceCommandBufferInheritanceFeaturesNV' 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. 'PhysicalDeviceCommandBufferInheritanceFeaturesNV' /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_command_buffer_inheritance VK_NV_command_buffer_inheritance>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceCommandBufferInheritanceFeaturesNV = PhysicalDeviceCommandBufferInheritanceFeaturesNV
+  { -- | #features-commandBufferInheritance# @commandBufferInheritance@ indicates
+    -- that command buffers executed in a queue inherit graphics and compute
+    -- state from the previously executed command buffer in that queue.
+    commandBufferInheritance :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceCommandBufferInheritanceFeaturesNV)
+#endif
+deriving instance Show PhysicalDeviceCommandBufferInheritanceFeaturesNV
+
+instance ToCStruct PhysicalDeviceCommandBufferInheritanceFeaturesNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceCommandBufferInheritanceFeaturesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (commandBufferInheritance))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceCommandBufferInheritanceFeaturesNV where
+  peekCStruct p = do
+    commandBufferInheritance <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceCommandBufferInheritanceFeaturesNV
+             (bool32ToBool commandBufferInheritance)
+
+instance Storable PhysicalDeviceCommandBufferInheritanceFeaturesNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceCommandBufferInheritanceFeaturesNV where
+  zero = PhysicalDeviceCommandBufferInheritanceFeaturesNV
+           zero
+
+
+type NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION"
+pattern NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION :: forall a . Integral a => a
+pattern NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION = 1
+
+
+type NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME = "VK_NV_command_buffer_inheritance"
+
+-- No documentation found for TopLevel "VK_NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME"
+pattern NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME = "VK_NV_command_buffer_inheritance"
+
diff --git a/src/Vulkan/Extensions/VK_NV_command_buffer_inheritance.hs-boot b/src/Vulkan/Extensions/VK_NV_command_buffer_inheritance.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_command_buffer_inheritance.hs-boot
@@ -0,0 +1,132 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_command_buffer_inheritance - device extension
+--
+-- = VK_NV_command_buffer_inheritance
+--
+-- [__Name String__]
+--     @VK_NV_command_buffer_inheritance@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     560
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__Contact__]
+--
+--     -   Lujin Wang
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_command_buffer_inheritance] @lujinwangnv%0A*Here describe the issue or question you have about the VK_NV_command_buffer_inheritance extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-02-15
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Daniel Story, Nintendo
+--
+-- == Description
+--
+-- This extension allows applications to take advantage of the graphics and
+-- compute state that remains valid in the queue between executions of
+-- submitted command buffers. This works across both primary and secondary
+-- command buffers.
+--
+-- The state inherited includes the previously bound pipeline state,
+-- previously bound shader objects, previously bound vertex and index
+-- buffers, previously bound descriptor sets and push constants, and all
+-- previously set dynamic state.
+--
+-- This extension relaxes the requirement that all that state needs to be
+-- bound and set after begin command buffer and before the next draw or
+-- dispatch.
+--
+-- By not having to set state that has been inherited applications can save
+-- both CPU and GPU cycles by not having to set state redundantly, and also
+-- have improved flexibility when reusing secondary command buffers.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceCommandBufferInheritanceFeaturesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME'
+--
+-- -   'NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV'
+--
+-- == Issues
+--
+-- 1) How can the validation layer know when state is valid at draw or
+-- dispatch time if it is inherited at execution time?
+--
+-- __RESOLVED__: Validation of invalid state at draw and dispatch time
+-- cannot be done while recording those commands. Instead the validation
+-- layer will need to keep track of any unset state when draw and dispatch
+-- commands are recorded, but not report an error at that time. It should
+-- also keep track of what state is valid at the end of each recorded
+-- command buffer. When secondary command buffer execution is recorded the
+-- validation layer can update its unset state tracking for that command
+-- buffer, and also for draw and dispatch commands recorded after execution
+-- of the secondary as they will inherit state from the executed secondary.
+-- This can be done recursively so every recorded primary command buffer
+-- has a final tally of any unset state used at draw and dispatch time.
+-- Finally when the primary is submitted to the queue the validation layer
+-- will know the previous primaries submitted to the queue and will know if
+-- there is any unset state used and can report the error then.
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-02-15 (Lujin Wang)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_command_buffer_inheritance 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_command_buffer_inheritance  (PhysicalDeviceCommandBufferInheritanceFeaturesNV) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceCommandBufferInheritanceFeaturesNV
+
+instance ToCStruct PhysicalDeviceCommandBufferInheritanceFeaturesNV
+instance Show PhysicalDeviceCommandBufferInheritanceFeaturesNV
+
+instance FromCStruct PhysicalDeviceCommandBufferInheritanceFeaturesNV
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_compute_shader_derivatives - device extension
 --
--- == VK_NV_compute_shader_derivatives
+-- = VK_NV_compute_shader_derivatives
 --
 -- [__Name String__]
 --     @VK_NV_compute_shader_derivatives@
@@ -22,11 +22,19 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
 --     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_compute_shader_derivatives.html SPV_NV_compute_shader_derivatives>
 --
+-- [__Deprecation State__]
+--
+--     -   /Promoted/ to
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_compute_shader_derivatives VK_KHR_compute_shader_derivatives>
+--         extension
+--
 -- [__Contact__]
 --
 --     -   Pat Brown
@@ -43,7 +51,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_compute_shader_derivatives.txt GL_NV_compute_shader_derivatives>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_compute_shader_derivatives.txt GL_NV_compute_shader_derivatives>
 --
 -- [__Contributors__]
 --
@@ -81,13 +89,13 @@
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV'
+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV'
 --
 -- == New SPIR-V Capability
 --
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV>
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsKHR ComputeDerivativeGroupQuadsNV>
 --
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV>
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearKHR ComputeDerivativeGroupLinearNV>
 --
 -- == Issues
 --
@@ -109,7 +117,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceComputeShaderDerivativesFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -118,118 +126,25 @@
 --
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
-module Vulkan.Extensions.VK_NV_compute_shader_derivatives  ( PhysicalDeviceComputeShaderDerivativesFeaturesNV(..)
+module Vulkan.Extensions.VK_NV_compute_shader_derivatives  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV
+                                                           , PhysicalDeviceComputeShaderDerivativesFeaturesNV
                                                            , NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION
                                                            , pattern NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION
                                                            , NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
                                                            , pattern NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
+                                                           , PhysicalDeviceComputeShaderDerivativesFeaturesKHR(..)
                                                            ) 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_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV))
--- | VkPhysicalDeviceComputeShaderDerivativesFeaturesNV - Structure
--- describing compute shader derivative features that can be supported by
--- an implementation
---
--- = Members
---
--- This structure describes the following features:
---
--- = Description
---
--- See
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-quad Quad shader scope>
--- for more information.
---
--- If the @VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures@.
--- 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. @VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures@.
--- /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_compute_shader_derivatives VK_NV_compute_shader_derivatives>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PhysicalDeviceComputeShaderDerivativesFeaturesNV = PhysicalDeviceComputeShaderDerivativesFeaturesNV
-  { -- | #features-computeDerivativeGroupQuads# @computeDerivativeGroupQuads@
-    -- indicates that the implementation supports the
-    -- @ComputeDerivativeGroupQuadsNV@ SPIR-V capability.
-    computeDerivativeGroupQuads :: Bool
-  , -- | #features-computeDerivativeGroupLinear# @computeDerivativeGroupLinear@
-    -- indicates that the implementation supports the
-    -- @ComputeDerivativeGroupLinearNV@ SPIR-V capability.
-    computeDerivativeGroupLinear :: Bool
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceComputeShaderDerivativesFeaturesNV)
-#endif
-deriving instance Show PhysicalDeviceComputeShaderDerivativesFeaturesNV
+import Vulkan.Extensions.VK_KHR_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesKHR)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR))
+import Vulkan.Extensions.VK_KHR_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesKHR(..))
+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR
 
-instance ToCStruct PhysicalDeviceComputeShaderDerivativesFeaturesNV where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceComputeShaderDerivativesFeaturesNV{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (computeDerivativeGroupQuads))
-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (computeDerivativeGroupLinear))
-    f
-  cStructSize = 24
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_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))
-    f
 
-instance FromCStruct PhysicalDeviceComputeShaderDerivativesFeaturesNV where
-  peekCStruct p = do
-    computeDerivativeGroupQuads <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
-    computeDerivativeGroupLinear <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
-    pure $ PhysicalDeviceComputeShaderDerivativesFeaturesNV
-             (bool32ToBool computeDerivativeGroupQuads)
-             (bool32ToBool computeDerivativeGroupLinear)
-
-instance Storable PhysicalDeviceComputeShaderDerivativesFeaturesNV where
-  sizeOf ~_ = 24
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PhysicalDeviceComputeShaderDerivativesFeaturesNV where
-  zero = PhysicalDeviceComputeShaderDerivativesFeaturesNV
-           zero
-           zero
+-- No documentation found for TopLevel "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV"
+type PhysicalDeviceComputeShaderDerivativesFeaturesNV = PhysicalDeviceComputeShaderDerivativesFeaturesKHR
 
 
 type NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION = 1
diff --git a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot
deleted file mode 100644
--- a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot
+++ /dev/null
@@ -1,133 +0,0 @@
-{-# language CPP #-}
--- | = Name
---
--- VK_NV_compute_shader_derivatives - device extension
---
--- == VK_NV_compute_shader_derivatives
---
--- [__Name String__]
---     @VK_NV_compute_shader_derivatives@
---
--- [__Extension Type__]
---     Device extension
---
--- [__Registered Extension Number__]
---     202
---
--- [__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>
---
--- [__SPIR-V Dependencies__]
---
---     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_compute_shader_derivatives.html SPV_NV_compute_shader_derivatives>
---
--- [__Contact__]
---
---     -   Pat Brown
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_compute_shader_derivatives] @nvpbrown%0A*Here describe the issue or question you have about the VK_NV_compute_shader_derivatives extension* >
---
--- == Other Extension Metadata
---
--- [__Last Modified Date__]
---     2018-07-19
---
--- [__IP Status__]
---     No known IP claims.
---
--- [__Interactions and External Dependencies__]
---
---     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_compute_shader_derivatives.txt GL_NV_compute_shader_derivatives>
---
--- [__Contributors__]
---
---     -   Pat Brown, NVIDIA
---
--- == Description
---
--- This extension adds Vulkan support for the
--- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_compute_shader_derivatives.html SPV_NV_compute_shader_derivatives>
--- SPIR-V extension.
---
--- The SPIR-V extension provides two new execution modes, both of which
--- allow compute shaders to use built-ins that evaluate compute derivatives
--- explicitly or implicitly. Derivatives will be computed via differencing
--- over a 2x2 group of shader invocations. The @DerivativeGroupQuadsNV@
--- execution mode assembles shader invocations into 2x2 groups, where each
--- group has x and y coordinates of the local invocation ID of the form
--- (2m+{0,1}, 2n+{0,1}). The @DerivativeGroupLinearNV@ execution mode
--- assembles shader invocations into 2x2 groups, where each group has local
--- invocation index values of the form 4m+{0,1,2,3}.
---
--- == New Structures
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
---     'Vulkan.Core10.Device.DeviceCreateInfo':
---
---     -   'PhysicalDeviceComputeShaderDerivativesFeaturesNV'
---
--- == New Enum Constants
---
--- -   'NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME'
---
--- -   'NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV'
---
--- == New SPIR-V Capability
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV>
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV>
---
--- == Issues
---
--- (1) Should we specify that the groups of four shader invocations used
--- for derivatives in a compute shader are the same groups of four
--- invocations that form a “quad” in shader subgroups?
---
--- __RESOLVED__: Yes.
---
--- == Examples
---
--- None.
---
--- == Version History
---
--- -   Revision 1, 2018-07-19 (Pat Brown)
---
---     -   Initial draft
---
--- == See Also
---
--- 'PhysicalDeviceComputeShaderDerivativesFeaturesNV'
---
--- == Document Notes
---
--- For more information, see the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_compute_shader_derivatives 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_compute_shader_derivatives  (PhysicalDeviceComputeShaderDerivativesFeaturesNV) where
-
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (ToCStruct)
-import Data.Kind (Type)
-
-data PhysicalDeviceComputeShaderDerivativesFeaturesNV
-
-instance ToCStruct PhysicalDeviceComputeShaderDerivativesFeaturesNV
-instance Show PhysicalDeviceComputeShaderDerivativesFeaturesNV
-
-instance FromCStruct PhysicalDeviceComputeShaderDerivativesFeaturesNV
-
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_cooperative_matrix - device extension
 --
--- == VK_NV_cooperative_matrix
+-- = VK_NV_cooperative_matrix
 --
 -- [__Name String__]
 --     @VK_NV_cooperative_matrix@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -40,7 +42,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_cooperative_matrix.txt GL_NV_cooperative_matrix>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_cooperative_matrix.txt GL_NV_cooperative_matrix>
 --
 -- [__Contributors__]
 --
@@ -61,7 +63,7 @@
 -- Cooperative matrix types are defined by the
 -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_cooperative_matrix.html SPV_NV_cooperative_matrix>
 -- SPIR-V extension and can be used with the
--- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_cooperative_matrix.txt GL_NV_cooperative_matrix>
+-- <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_cooperative_matrix.txt GL_NV_cooperative_matrix>
 -- GLSL extension.
 --
 -- This extension includes support for enumerating the matrix types and
@@ -171,10 +173,7 @@
 --
 -- == See Also
 --
--- 'ComponentTypeNV', 'CooperativeMatrixPropertiesNV',
--- 'PhysicalDeviceCooperativeMatrixFeaturesNV',
--- 'PhysicalDeviceCooperativeMatrixPropertiesNV', 'ScopeNV',
--- 'getPhysicalDeviceCooperativeMatrixPropertiesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -300,8 +299,8 @@
 --
 -- 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
+-- @pPropertyCount@ /must/ point to a variable set by the application 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@
@@ -460,10 +459,10 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceCooperativeMatrixFeaturesNV = PhysicalDeviceCooperativeMatrixFeaturesNV
-  { -- | #features-cooperativeMatrix-NV# @cooperativeMatrix@ indicates that the
+  { -- | #features-cooperativeMatrixNV# @cooperativeMatrix@ indicates that the
     -- implementation supports the @CooperativeMatrixNV@ SPIR-V capability.
     cooperativeMatrix :: Bool
-  , -- | #features-cooperativeMatrixRobustBufferAccess-NV#
+  , -- | #features-cooperativeMatrixRobustBufferAccessNV#
     -- @cooperativeMatrixRobustBufferAccess@ indicates that the implementation
     -- supports robust buffer access for SPIR-V @OpCooperativeMatrixLoadNV@ and
     -- @OpCooperativeMatrixStoreNV@ instructions.
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_cooperative_matrix - device extension
 --
--- == VK_NV_cooperative_matrix
+-- = VK_NV_cooperative_matrix
 --
 -- [__Name String__]
 --     @VK_NV_cooperative_matrix@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -40,7 +42,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_cooperative_matrix.txt GL_NV_cooperative_matrix>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_cooperative_matrix.txt GL_NV_cooperative_matrix>
 --
 -- [__Contributors__]
 --
@@ -61,7 +63,7 @@
 -- Cooperative matrix types are defined by the
 -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_cooperative_matrix.html SPV_NV_cooperative_matrix>
 -- SPIR-V extension and can be used with the
--- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_cooperative_matrix.txt GL_NV_cooperative_matrix>
+-- <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_cooperative_matrix.txt GL_NV_cooperative_matrix>
 -- GLSL extension.
 --
 -- This extension includes support for enumerating the matrix types and
@@ -171,10 +173,7 @@
 --
 -- == See Also
 --
--- 'ComponentTypeNV', 'CooperativeMatrixPropertiesNV',
--- 'PhysicalDeviceCooperativeMatrixFeaturesNV',
--- 'PhysicalDeviceCooperativeMatrixPropertiesNV', 'ScopeNV',
--- 'getPhysicalDeviceCooperativeMatrixPropertiesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_NV_cooperative_matrix2.hs b/src/Vulkan/Extensions/VK_NV_cooperative_matrix2.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_cooperative_matrix2.hs
@@ -0,0 +1,694 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_cooperative_matrix2 - device extension
+--
+-- = VK_NV_cooperative_matrix2
+--
+-- [__Name String__]
+--     @VK_NV_cooperative_matrix2@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     594
+--
+-- [__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_cooperative_matrix VK_KHR_cooperative_matrix>
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_cooperative_matrix2.html SPV_NV_cooperative_matrix2>
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_tensor_addressing.html SPV_NV_tensor_addressing>
+--
+-- [__Contact__]
+--
+--     -   Jeff Bolz
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_cooperative_matrix2] @jeffbolznv%0A*Here describe the issue or question you have about the VK_NV_cooperative_matrix2 extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_NV_cooperative_matrix2.adoc VK_NV_cooperative_matrix2>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-08-01
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_cooperative_matrix2.txt GLSL_NV_cooperative_matrix2>
+--
+-- [__Contributors__]
+--
+--     -   Jeff Bolz, NVIDIA
+--
+--     -   Karthik Vaidyanathan, NVIDIA
+--
+-- == Description
+--
+-- This extension adds several new features building on the cooperative
+-- matrix types added in VK_KHR_cooperative_matrix. The goal is to add and
+-- accelerate features beyond just simple GEMM kernels, including adding
+-- support for type\/use conversions, reductions, per-element operations,
+-- and tensor addressing, and also to improve usability and out-of-the-box
+-- performance by adding support for more flexible matrix sizes, and
+-- workgroup scope matrices with compiler-managed staging through shared
+-- memory.
+--
+-- The new functionality is defined by the
+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_tensor_addressing.html SPV_NV_tensor_addressing>
+-- and
+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_cooperative_matrix2.html SPV_NV_cooperative_matrix2>
+-- SPIR-V extensions and can be used with the
+-- <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_cooperative_matrix2.txt GLSL_NV_cooperative_matrix2>
+-- GLSL extension.
+--
+-- This extension includes support for enumerating the matrix types and
+-- dimensions that are supported by the implementation, and which specific
+-- features are supported.
+--
+-- == New Commands
+--
+-- -   'getPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV'
+--
+-- == New Structures
+--
+-- -   'CooperativeMatrixFlexibleDimensionsPropertiesNV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceCooperativeMatrix2FeaturesNV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceCooperativeMatrix2PropertiesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME'
+--
+-- -   'NV_COOPERATIVE_MATRIX_2_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV'
+--
+-- == New SPIR-V Capabilities
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-TensorAddressingNV TensorAddressingNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixReductionsNV CooperativeMatrixReductionsNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixConversionsNV CooperativeMatrixConversionsNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixPerElementOperationsNV CooperativeMatrixPerElementOperationsNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixTensorAddressingNV CooperativeMatrixTensorAddressingNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixBlockLoadsNV CooperativeMatrixBlockLoadsNV>
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-08-01 (Jeff Bolz)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_cooperative_matrix2 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_cooperative_matrix2  ( getPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV
+                                                    , PhysicalDeviceCooperativeMatrix2FeaturesNV(..)
+                                                    , PhysicalDeviceCooperativeMatrix2PropertiesNV(..)
+                                                    , CooperativeMatrixFlexibleDimensionsPropertiesNV(..)
+                                                    , NV_COOPERATIVE_MATRIX_2_SPEC_VERSION
+                                                    , pattern NV_COOPERATIVE_MATRIX_2_SPEC_VERSION
+                                                    , NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME
+                                                    , pattern NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME
+                                                    , ScopeKHR(..)
+                                                    , ComponentTypeKHR(..)
+                                                    ) where
+
+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 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 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 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.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR)
+import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV))
+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.Extensions.VK_KHR_cooperative_matrix (ScopeKHR)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_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
+#endif
+  "dynamic" mkVkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV
+  :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO Result
+
+-- | vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV -
+-- Returns properties describing what cooperative matrix types are
+-- supported
+--
+-- = Description
+--
+-- If @pProperties@ is @NULL@, then the number of flexible dimensions
+-- properties available is returned in @pPropertyCount@. Otherwise,
+-- @pPropertyCount@ /must/ point to a variable set by the application 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 flexible
+-- dimensions 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 flexible dimensions properties were returned.
+--
+-- If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-cooperativeMatrixFlexibleDimensions cooperativeMatrixFlexibleDimensions>
+-- feature is not supported, the implementation /must/ advertise zero
+-- properties.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV-physicalDevice-parameter#
+--     @physicalDevice@ /must/ be a valid
+--     'Vulkan.Core10.Handles.PhysicalDevice' handle
+--
+-- -   #VUID-vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV-pPropertyCount-parameter#
+--     @pPropertyCount@ /must/ be a valid pointer to a @uint32_t@ value
+--
+-- -   #VUID-vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV-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@
+--     'CooperativeMatrixFlexibleDimensionsPropertiesNV' 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_NV_cooperative_matrix2 VK_NV_cooperative_matrix2>,
+-- 'CooperativeMatrixFlexibleDimensionsPropertiesNV',
+-- 'Vulkan.Core10.Handles.PhysicalDevice'
+getPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV :: forall io
+                                                                  . (MonadIO io)
+                                                                 => -- | @physicalDevice@ is the physical device.
+                                                                    PhysicalDevice
+                                                                 -> io (Result, ("properties" ::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
+getPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV physicalDevice = liftIO . evalContT $ do
+  let vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNVPtr = pVkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
+  lift $ unless (vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV is null" Nothing Nothing
+  let vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV' = mkVkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNVPtr
+  let physicalDevice' = physicalDeviceHandle (physicalDevice)
+  pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free
+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV" (vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV'
+                                                                                                       physicalDevice'
+                                                                                                       (pPPropertyCount)
+                                                                                                       (nullPtr))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pPropertyCount <- lift $ peek @Word32 pPPropertyCount
+  pPProperties <- ContT $ bracket (callocBytes @CooperativeMatrixFlexibleDimensionsPropertiesNV ((fromIntegral (pPropertyCount)) * 56)) free
+  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 56) :: Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]
+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV" (vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV'
+                                                                                                        physicalDevice'
+                                                                                                        (pPPropertyCount)
+                                                                                                        ((pPProperties)))
+  lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
+  pPropertyCount' <- lift $ peek @Word32 pPPropertyCount
+  pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @CooperativeMatrixFlexibleDimensionsPropertiesNV (((pPProperties) `advancePtrBytes` (56 * (i)) :: Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV)))
+  pure $ ((r'), pProperties')
+
+
+-- | VkPhysicalDeviceCooperativeMatrix2FeaturesNV - Structure describing
+-- cooperative matrix features that can be supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceCooperativeMatrix2FeaturesNV' 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. 'PhysicalDeviceCooperativeMatrix2FeaturesNV' /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_cooperative_matrix2 VK_NV_cooperative_matrix2>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceCooperativeMatrix2FeaturesNV = PhysicalDeviceCooperativeMatrix2FeaturesNV
+  { -- | #features-cooperativeMatrixWorkgroupScope#
+    -- @cooperativeMatrixWorkgroupScope@ indicates that the implementation
+    -- supports workgroup scope cooperative matrices.
+    cooperativeMatrixWorkgroupScope :: Bool
+  , -- | #features-cooperativeMatrixFlexibleDimensions#
+    -- @cooperativeMatrixFlexibleDimensions@ indicates that the implementation
+    -- supports cooperative matrix sizes that are a multiple of the granularity
+    -- advertised in 'CooperativeMatrixFlexibleDimensionsPropertiesNV'.
+    cooperativeMatrixFlexibleDimensions :: Bool
+  , -- | #features-cooperativeMatrixReductions# @cooperativeMatrixReductions@
+    -- indicates that the implementation supports the
+    -- @CooperativeMatrixReductionsNV@ SPIR-V capability. This allows
+    -- performing (row, column, 2x2, or all element) reductions on matrices.
+    cooperativeMatrixReductions :: Bool
+  , -- | #features-cooperativeMatrixConversions# @cooperativeMatrixConversions@
+    -- indicates that the implementation supports the
+    -- @CooperativeMatrixConversionsNV@ SPIR-V capability. This allows
+    -- converting accumulator matrices to A or B matrices.
+    cooperativeMatrixConversions :: Bool
+  , -- | #features-cooperativeMatrixPerElementOperations#
+    -- @cooperativeMatrixPerElementOperations@ indicates that the
+    -- implementation supports the @CooperativeMatrixPerElementOperationsNV@
+    -- SPIR-V capability. This allows performing element-wise operations on
+    -- matrix elements using a callback function.
+    cooperativeMatrixPerElementOperations :: Bool
+  , -- | #features-cooperativeMatrixTensorAddressing#
+    -- @cooperativeMatrixTensorAddressing@ indicates that the implementation
+    -- supports the @TensorAddressingNV@ and
+    -- @CooperativeMatrixTensorAddressingNV@ SPIR-V capabilities. This allows
+    -- using tensor layout and tensor view types for matrix loads and stores.
+    cooperativeMatrixTensorAddressing :: Bool
+  , -- | #features-cooperativeMatrixBlockLoads# @cooperativeMatrixBlockLoads@
+    -- indicates that the implementation supports the
+    -- @CooperativeMatrixBlockLoadsNV@ SPIR-V capability. This allows setting
+    -- block size for loads and using a callback function to decode block
+    -- elements.
+    cooperativeMatrixBlockLoads :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceCooperativeMatrix2FeaturesNV)
+#endif
+deriving instance Show PhysicalDeviceCooperativeMatrix2FeaturesNV
+
+instance ToCStruct PhysicalDeviceCooperativeMatrix2FeaturesNV where
+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceCooperativeMatrix2FeaturesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (cooperativeMatrixWorkgroupScope))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (cooperativeMatrixFlexibleDimensions))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (cooperativeMatrixReductions))
+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (cooperativeMatrixConversions))
+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (cooperativeMatrixPerElementOperations))
+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (cooperativeMatrixTensorAddressing))
+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (cooperativeMatrixBlockLoads))
+    f
+  cStructSize = 48
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_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))
+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceCooperativeMatrix2FeaturesNV where
+  peekCStruct p = do
+    cooperativeMatrixWorkgroupScope <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    cooperativeMatrixFlexibleDimensions <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    cooperativeMatrixReductions <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    cooperativeMatrixConversions <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))
+    cooperativeMatrixPerElementOperations <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))
+    cooperativeMatrixTensorAddressing <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))
+    cooperativeMatrixBlockLoads <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))
+    pure $ PhysicalDeviceCooperativeMatrix2FeaturesNV
+             (bool32ToBool cooperativeMatrixWorkgroupScope)
+             (bool32ToBool cooperativeMatrixFlexibleDimensions)
+             (bool32ToBool cooperativeMatrixReductions)
+             (bool32ToBool cooperativeMatrixConversions)
+             (bool32ToBool cooperativeMatrixPerElementOperations)
+             (bool32ToBool cooperativeMatrixTensorAddressing)
+             (bool32ToBool cooperativeMatrixBlockLoads)
+
+instance Storable PhysicalDeviceCooperativeMatrix2FeaturesNV where
+  sizeOf ~_ = 48
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceCooperativeMatrix2FeaturesNV where
+  zero = PhysicalDeviceCooperativeMatrix2FeaturesNV
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceCooperativeMatrix2PropertiesNV - Structure describing
+-- cooperative matrix properties supported by an implementation
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceCooperativeMatrix2PropertiesNV' 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_cooperative_matrix2 VK_NV_cooperative_matrix2>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceCooperativeMatrix2PropertiesNV = PhysicalDeviceCooperativeMatrix2PropertiesNV
+  { -- | #limits-cooperativeMatrixWorkgroupScopeMaxWorkgroupSize#
+    -- @cooperativeMatrixWorkgroupScopeMaxWorkgroupSize@ is the maximum number
+    -- of invocations in a workgroup when the module uses
+    -- @OpTypeCooperativeMatrixKHR@ with @Scope@ equal to @Workgroup@.
+    cooperativeMatrixWorkgroupScopeMaxWorkgroupSize :: Word32
+  , -- | #limits-cooperativeMatrixFlexibleDimensionsMaxDimension#
+    -- @cooperativeMatrixFlexibleDimensionsMaxDimension@ is the maximum
+    -- supported dimension for cooperative matrix types when the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-cooperativeMatrixFlexibleDimensions cooperativeMatrixFlexibleDimensions>
+    -- feature is enabled.
+    cooperativeMatrixFlexibleDimensionsMaxDimension :: Word32
+  , -- | #limits-cooperativeMatrixWorkgroupScopeReservedSharedMemory#
+    -- @cooperativeMatrixWorkgroupScopeReservedSharedMemory@ is the number of
+    -- bytes of shared memory reserved for the implementation when the module
+    -- uses @OpTypeCooperativeMatrixKHR@ with @Scope@ equal to @Workgroup@.
+    cooperativeMatrixWorkgroupScopeReservedSharedMemory :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceCooperativeMatrix2PropertiesNV)
+#endif
+deriving instance Show PhysicalDeviceCooperativeMatrix2PropertiesNV
+
+instance ToCStruct PhysicalDeviceCooperativeMatrix2PropertiesNV where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceCooperativeMatrix2PropertiesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (cooperativeMatrixWorkgroupScopeMaxWorkgroupSize)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (cooperativeMatrixFlexibleDimensionsMaxDimension)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (cooperativeMatrixWorkgroupScopeReservedSharedMemory)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_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)
+    f
+
+instance FromCStruct PhysicalDeviceCooperativeMatrix2PropertiesNV where
+  peekCStruct p = do
+    cooperativeMatrixWorkgroupScopeMaxWorkgroupSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    cooperativeMatrixFlexibleDimensionsMaxDimension <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    cooperativeMatrixWorkgroupScopeReservedSharedMemory <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    pure $ PhysicalDeviceCooperativeMatrix2PropertiesNV
+             cooperativeMatrixWorkgroupScopeMaxWorkgroupSize
+             cooperativeMatrixFlexibleDimensionsMaxDimension
+             cooperativeMatrixWorkgroupScopeReservedSharedMemory
+
+instance Storable PhysicalDeviceCooperativeMatrix2PropertiesNV where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceCooperativeMatrix2PropertiesNV where
+  zero = PhysicalDeviceCooperativeMatrix2PropertiesNV
+           zero
+           zero
+           zero
+
+
+-- | VkCooperativeMatrixFlexibleDimensionsPropertiesNV - Structure specifying
+-- cooperative matrix properties
+--
+-- = Description
+--
+-- Rather than explicitly enumerating a list of supported sizes,
+-- 'CooperativeMatrixFlexibleDimensionsPropertiesNV' advertises size
+-- granularities, where the matrix /must/ be a multiple of the advertised
+-- size. The M and K granularities apply to rows and columns of matrices
+-- with @Use@ of @MatrixA@, K, and N apply to rows and columns of matrices
+-- with @Use@ of @MatrixB@, M, and N apply to rows and columns of matrices
+-- with @Use@ of @MatrixAccumulator@.
+--
+-- For a given type combination, if multiple workgroup sizes are supported
+-- there /may/ be multiple
+-- 'CooperativeMatrixFlexibleDimensionsPropertiesNV' structures with
+-- different granularities.
+--
+-- All granularity values /must/ be powers of two.
+--
+-- Different A\/B types may require different granularities but share the
+-- same accumulator type. In such a case, the supported granularity for a
+-- matrix with the accumulator type would be the smallest advertised
+-- granularity.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cooperative_matrix2 VK_NV_cooperative_matrix2>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.ComponentTypeKHR',
+-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.ScopeKHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'getPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV'
+data CooperativeMatrixFlexibleDimensionsPropertiesNV = CooperativeMatrixFlexibleDimensionsPropertiesNV
+  { -- | @MGranularity@ is the granularity of the number of rows in matrices @A@,
+    -- @C@, and 'Vulkan.Core10.Enums.Result.Result'. The rows /must/ be an
+    -- integer multiple of this value.
+    mGranularity :: Word32
+  , -- | @NGranularity@ is the granularity of columns in matrices @B@, @C@,
+    -- 'Vulkan.Core10.Enums.Result.Result'. The columns /must/ be an integer
+    -- multiple of this value.
+    nGranularity :: Word32
+  , -- | @KGranularity@ is the granularity of columns in matrix @A@ and rows in
+    -- matrix @B@. The columns\/rows /must/ be an integer multiple of this
+    -- value.
+    kGranularity :: Word32
+  , -- | @AType@ is the component type of matrix @A@, of type
+    -- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.ComponentTypeKHR'.
+    aType :: ComponentTypeKHR
+  , -- | @BType@ is the component type of matrix @B@, of type
+    -- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.ComponentTypeKHR'.
+    bType :: ComponentTypeKHR
+  , -- | @CType@ is the component type of matrix @C@, of type
+    -- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.ComponentTypeKHR'.
+    cType :: ComponentTypeKHR
+  , -- | @ResultType@ is the component type of matrix
+    -- 'Vulkan.Core10.Enums.Result.Result', of type
+    -- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.ComponentTypeKHR'.
+    resultType :: ComponentTypeKHR
+  , -- | @saturatingAccumulation@ indicates whether the @SaturatingAccumulation@
+    -- operand to @OpCooperativeMatrixMulAddKHR@ /must/ be present or not. If
+    -- it is 'Vulkan.Core10.FundamentalTypes.TRUE', the
+    -- @SaturatingAccumulation@ operand /must/ be present. If it is
+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', the @SaturatingAccumulation@
+    -- operand /must/ not be present.
+    saturatingAccumulation :: Bool
+  , -- | @scope@ is the scope of all the matrix types, of type
+    -- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.ScopeKHR'.
+    scope :: ScopeKHR
+  , -- | @workgroupInvocations@ is the number of invocations in the local
+    -- workgroup when this combination of values is supported.
+    workgroupInvocations :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (CooperativeMatrixFlexibleDimensionsPropertiesNV)
+#endif
+deriving instance Show CooperativeMatrixFlexibleDimensionsPropertiesNV
+
+instance ToCStruct CooperativeMatrixFlexibleDimensionsPropertiesNV where
+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p CooperativeMatrixFlexibleDimensionsPropertiesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (mGranularity)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (nGranularity)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (kGranularity)
+    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)
+    poke ((p `plusPtr` 52 :: Ptr Word32)) (workgroupInvocations)
+    f
+  cStructSize = 56
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_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 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)
+    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct CooperativeMatrixFlexibleDimensionsPropertiesNV where
+  peekCStruct p = do
+    mGranularity <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    nGranularity <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    kGranularity <- 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))
+    workgroupInvocations <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))
+    pure $ CooperativeMatrixFlexibleDimensionsPropertiesNV
+             mGranularity
+             nGranularity
+             kGranularity
+             aType
+             bType
+             cType
+             resultType
+             (bool32ToBool saturatingAccumulation)
+             scope
+             workgroupInvocations
+
+instance Storable CooperativeMatrixFlexibleDimensionsPropertiesNV where
+  sizeOf ~_ = 56
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero CooperativeMatrixFlexibleDimensionsPropertiesNV where
+  zero = CooperativeMatrixFlexibleDimensionsPropertiesNV
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+type NV_COOPERATIVE_MATRIX_2_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION"
+pattern NV_COOPERATIVE_MATRIX_2_SPEC_VERSION :: forall a . Integral a => a
+pattern NV_COOPERATIVE_MATRIX_2_SPEC_VERSION = 1
+
+
+type NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME = "VK_NV_cooperative_matrix2"
+
+-- No documentation found for TopLevel "VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME"
+pattern NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME = "VK_NV_cooperative_matrix2"
+
diff --git a/src/Vulkan/Extensions/VK_NV_cooperative_matrix2.hs-boot b/src/Vulkan/Extensions/VK_NV_cooperative_matrix2.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_cooperative_matrix2.hs-boot
@@ -0,0 +1,174 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_cooperative_matrix2 - device extension
+--
+-- = VK_NV_cooperative_matrix2
+--
+-- [__Name String__]
+--     @VK_NV_cooperative_matrix2@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     594
+--
+-- [__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_cooperative_matrix VK_KHR_cooperative_matrix>
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_cooperative_matrix2.html SPV_NV_cooperative_matrix2>
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_tensor_addressing.html SPV_NV_tensor_addressing>
+--
+-- [__Contact__]
+--
+--     -   Jeff Bolz
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_cooperative_matrix2] @jeffbolznv%0A*Here describe the issue or question you have about the VK_NV_cooperative_matrix2 extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_NV_cooperative_matrix2.adoc VK_NV_cooperative_matrix2>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-08-01
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_cooperative_matrix2.txt GLSL_NV_cooperative_matrix2>
+--
+-- [__Contributors__]
+--
+--     -   Jeff Bolz, NVIDIA
+--
+--     -   Karthik Vaidyanathan, NVIDIA
+--
+-- == Description
+--
+-- This extension adds several new features building on the cooperative
+-- matrix types added in VK_KHR_cooperative_matrix. The goal is to add and
+-- accelerate features beyond just simple GEMM kernels, including adding
+-- support for type\/use conversions, reductions, per-element operations,
+-- and tensor addressing, and also to improve usability and out-of-the-box
+-- performance by adding support for more flexible matrix sizes, and
+-- workgroup scope matrices with compiler-managed staging through shared
+-- memory.
+--
+-- The new functionality is defined by the
+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_tensor_addressing.html SPV_NV_tensor_addressing>
+-- and
+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_cooperative_matrix2.html SPV_NV_cooperative_matrix2>
+-- SPIR-V extensions and can be used with the
+-- <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_cooperative_matrix2.txt GLSL_NV_cooperative_matrix2>
+-- GLSL extension.
+--
+-- This extension includes support for enumerating the matrix types and
+-- dimensions that are supported by the implementation, and which specific
+-- features are supported.
+--
+-- == New Commands
+--
+-- -   'getPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV'
+--
+-- == New Structures
+--
+-- -   'CooperativeMatrixFlexibleDimensionsPropertiesNV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceCooperativeMatrix2FeaturesNV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceCooperativeMatrix2PropertiesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME'
+--
+-- -   'NV_COOPERATIVE_MATRIX_2_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV'
+--
+-- == New SPIR-V Capabilities
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-TensorAddressingNV TensorAddressingNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixReductionsNV CooperativeMatrixReductionsNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixConversionsNV CooperativeMatrixConversionsNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixPerElementOperationsNV CooperativeMatrixPerElementOperationsNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixTensorAddressingNV CooperativeMatrixTensorAddressingNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixBlockLoadsNV CooperativeMatrixBlockLoadsNV>
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-08-01 (Jeff Bolz)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_cooperative_matrix2 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_cooperative_matrix2  ( CooperativeMatrixFlexibleDimensionsPropertiesNV
+                                                    , PhysicalDeviceCooperativeMatrix2FeaturesNV
+                                                    , PhysicalDeviceCooperativeMatrix2PropertiesNV
+                                                    ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data CooperativeMatrixFlexibleDimensionsPropertiesNV
+
+instance ToCStruct CooperativeMatrixFlexibleDimensionsPropertiesNV
+instance Show CooperativeMatrixFlexibleDimensionsPropertiesNV
+
+instance FromCStruct CooperativeMatrixFlexibleDimensionsPropertiesNV
+
+
+data PhysicalDeviceCooperativeMatrix2FeaturesNV
+
+instance ToCStruct PhysicalDeviceCooperativeMatrix2FeaturesNV
+instance Show PhysicalDeviceCooperativeMatrix2FeaturesNV
+
+instance FromCStruct PhysicalDeviceCooperativeMatrix2FeaturesNV
+
+
+data PhysicalDeviceCooperativeMatrix2PropertiesNV
+
+instance ToCStruct PhysicalDeviceCooperativeMatrix2PropertiesNV
+instance Show PhysicalDeviceCooperativeMatrix2PropertiesNV
+
+instance FromCStruct PhysicalDeviceCooperativeMatrix2PropertiesNV
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_copy_memory_indirect - device extension
 --
--- == VK_NV_copy_memory_indirect
+-- = VK_NV_copy_memory_indirect
 --
 -- [__Name String__]
 --     @VK_NV_copy_memory_indirect@
@@ -21,9 +21,16 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__Contact__]
 --
@@ -96,10 +103,7 @@
 --
 -- == See Also
 --
--- 'CopyMemoryIndirectCommandNV', 'CopyMemoryToImageIndirectCommandNV',
--- 'PhysicalDeviceCopyMemoryIndirectFeaturesNV',
--- 'PhysicalDeviceCopyMemoryIndirectPropertiesNV',
--- 'cmdCopyMemoryIndirectNV', 'cmdCopyMemoryToImageIndirectNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_copy_memory_indirect - device extension
 --
--- == VK_NV_copy_memory_indirect
+-- = VK_NV_copy_memory_indirect
 --
 -- [__Name String__]
 --     @VK_NV_copy_memory_indirect@
@@ -21,9 +21,16 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__Contact__]
 --
@@ -96,10 +103,7 @@
 --
 -- == See Also
 --
--- 'CopyMemoryIndirectCommandNV', 'CopyMemoryToImageIndirectCommandNV',
--- 'PhysicalDeviceCopyMemoryIndirectFeaturesNV',
--- 'PhysicalDeviceCopyMemoryIndirectPropertiesNV',
--- 'cmdCopyMemoryIndirectNV', 'cmdCopyMemoryToImageIndirectNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_corner_sampled_image - device extension
 --
--- == VK_NV_corner_sampled_image
+-- = VK_NV_corner_sampled_image
 --
 -- [__Name String__]
 --     @VK_NV_corner_sampled_image@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -143,7 +145,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceCornerSampledImageFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -208,7 +210,7 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceCornerSampledImageFeaturesNV = PhysicalDeviceCornerSampledImageFeaturesNV
-  { -- | #features-cornersampledimage# @cornerSampledImage@ specifies whether
+  { -- | #features-cornerSampledImage# @cornerSampledImage@ specifies whether
     -- images can be created with a
     -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing
     -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'.
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_corner_sampled_image - device extension
 --
--- == VK_NV_corner_sampled_image
+-- = VK_NV_corner_sampled_image
 --
 -- [__Name String__]
 --     @VK_NV_corner_sampled_image@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -143,7 +145,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceCornerSampledImageFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_coverage_reduction_mode - device extension
 --
--- == VK_NV_coverage_reduction_mode
+-- = VK_NV_coverage_reduction_mode
 --
 -- [__Name String__]
 --     @VK_NV_coverage_reduction_mode@
@@ -23,7 +23,11 @@
 -- [__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
+--         
 --     <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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -119,11 +123,7 @@
 --
 -- == See Also
 --
--- 'CoverageReductionModeNV', 'FramebufferMixedSamplesCombinationNV',
--- 'PhysicalDeviceCoverageReductionModeFeaturesNV',
--- 'PipelineCoverageReductionStateCreateFlagsNV',
--- 'PipelineCoverageReductionStateCreateInfoNV',
--- 'getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -230,8 +230,8 @@
 -- If @pCombinations@ is @NULL@, then the number of supported combinations
 -- for the given @physicalDevice@ is returned in @pCombinationCount@.
 -- Otherwise, @pCombinationCount@ /must/ point to a variable set by the
--- user to the number of elements in the @pCombinations@ array, and on
--- return the variable is overwritten with the number of values actually
+-- application to the number of elements in the @pCombinations@ array, and
+-- on return the variable is overwritten with the number of values actually
 -- written to @pCombinations@. If the value of @pCombinationCount@ is less
 -- than the number of combinations supported for the given
 -- @physicalDevice@, at most @pCombinationCount@ values will be written to
@@ -555,6 +555,7 @@
 -- = See Also
 --
 -- <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.FundamentalTypes.Flags',
 -- 'PipelineCoverageReductionStateCreateInfoNV'
 newtype PipelineCoverageReductionStateCreateFlagsNV = PipelineCoverageReductionStateCreateFlagsNV Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_coverage_reduction_mode - device extension
 --
--- == VK_NV_coverage_reduction_mode
+-- = VK_NV_coverage_reduction_mode
 --
 -- [__Name String__]
 --     @VK_NV_coverage_reduction_mode@
@@ -23,7 +23,11 @@
 -- [__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
+--         
 --     <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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -119,11 +123,7 @@
 --
 -- == See Also
 --
--- 'CoverageReductionModeNV', 'FramebufferMixedSamplesCombinationNV',
--- 'PhysicalDeviceCoverageReductionModeFeaturesNV',
--- 'PipelineCoverageReductionStateCreateFlagsNV',
--- 'PipelineCoverageReductionStateCreateInfoNV',
--- 'getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_NV_cuda_kernel_launch.hs b/src/Vulkan/Extensions/VK_NV_cuda_kernel_launch.hs
--- a/src/Vulkan/Extensions/VK_NV_cuda_kernel_launch.hs
+++ b/src/Vulkan/Extensions/VK_NV_cuda_kernel_launch.hs
@@ -3,7 +3,7 @@
 --
 -- VK_NV_cuda_kernel_launch - device extension
 --
--- == VK_NV_cuda_kernel_launch
+-- = VK_NV_cuda_kernel_launch
 --
 -- [__Name String__]
 --     @VK_NV_cuda_kernel_launch@
@@ -75,7 +75,7 @@
 -- 'getCudaModuleCacheNV' with a @NULL@ pointer to a buffer and with a
 -- valid pointer receiving the size; then another call of the same function
 -- with a valid pointer to a buffer to retrieve the data. The resulting
--- cache could then be user later for further runs of this application by
+-- cache could then be used later for further runs of this application by
 -- sending this cache instead of the PTX code (using the same
 -- 'createCudaModuleNV'), thus significantly speeding up the initialization
 -- of the CUDA module.
@@ -174,13 +174,7 @@
 --
 -- == See Also
 --
--- 'CudaFunctionCreateInfoNV', 'Vulkan.Extensions.Handles.CudaFunctionNV',
--- 'CudaLaunchInfoNV', 'CudaModuleCreateInfoNV',
--- 'Vulkan.Extensions.Handles.CudaModuleNV',
--- 'PhysicalDeviceCudaKernelLaunchFeaturesNV',
--- 'PhysicalDeviceCudaKernelLaunchPropertiesNV', 'cmdCudaLaunchKernelNV',
--- 'createCudaFunctionNV', 'createCudaModuleNV', 'destroyCudaFunctionNV',
--- 'destroyCudaModuleNV', 'getCudaModuleCacheNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -403,19 +397,17 @@
 --
 -- If @pCacheData@ is @NULL@, then the size of the binary cache, in bytes,
 -- is returned in @pCacheSize@. Otherwise, @pCacheSize@ /must/ point to a
--- variable set by the user to the size of the buffer, in bytes, pointed to
--- by @pCacheData@, and on return the variable is overwritten with the
--- amount of data actually written to @pCacheData@. If @pCacheSize@ is less
--- than the size of the binary shader code, nothing is written to
--- @pCacheData@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be
--- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS'.
+-- variable set by the application to the size of the buffer, in bytes,
+-- pointed to by @pCacheData@, and on return the variable is overwritten
+-- with the amount of data actually written to @pCacheData@. If
+-- @pCacheSize@ is less than the size of the binary shader code, nothing is
+-- written to @pCacheData@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE'
+-- will be returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS'.
 --
 -- The returned cache /may/ then be used later for further initialization
 -- of the CUDA module, by sending this cache /instead/ of the PTX code when
 -- using 'createCudaModuleNV'.
 --
--- Note
---
 -- Using the binary cache instead of the original PTX code /should/
 -- significantly speed up initialization of the CUDA module, given that the
 -- whole compilation and validation will not be necessary.
@@ -786,7 +778,7 @@
   { -- | @dataSize@ is the length of the @pData@ array.
     --
     -- #VUID-VkCudaModuleCreateInfoNV-dataSize-09413# @dataSize@ /must/ be the
-    -- total size in bytes of the PTX files or binary cache passed to @pData@.
+    -- total size in bytes of the PTX files or binary cache passed to @pData@
     --
     -- #VUID-VkCudaModuleCreateInfoNV-dataSize-arraylength# @dataSize@ /must/
     -- be greater than @0@
@@ -912,12 +904,11 @@
 -- <https://docs.nvidia.com/cuda/cuda-driver-api/group__CUDA__EXEC.html#group__CUDA__EXEC_1gb8f3dc3031b40da29d5f9a7139e52e15 cuLaunchKernel>
 --
 -- If @function@ has N parameters, then @pParams@ /must/ be an array of N
--- pointers and @paramCount@ /must/ be set to N. Each of @kernelParams@[0]
--- through @kernelParams@[N-1] /must/ point to a region of memory from
--- which the actual kernel parameter will be copied. The number of kernel
--- parameters and their offsets and sizes are not specified here as that
--- information is stored in the 'Vulkan.Extensions.Handles.CudaFunctionNV'
--- object.
+-- pointers and @paramCount@ /must/ be N. Each of @kernelParams@[0] through
+-- @kernelParams@[N-1] /must/ point to a region of memory from which the
+-- actual kernel parameter will be copied. The number of kernel parameters
+-- and their offsets and sizes are not specified here as that information
+-- is stored in the 'Vulkan.Extensions.Handles.CudaFunctionNV' object.
 --
 -- The application-owned memory pointed to by @pParams@ and
 -- @kernelParams@[0] through @kernelParams@[N-1] are consumed immediately,
@@ -939,7 +930,7 @@
     -- valid 'Vulkan.Extensions.Handles.CudaFunctionNV' handle
     function :: CudaFunctionNV
   , -- | @gridDimX@ is the number of local workgroups to dispatch in the X
-    -- dimension. It must be less than or equal to
+    -- dimension. It /must/ be less than or equal to
     -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]
     --
     -- #VUID-VkCudaLaunchInfoNV-gridDimX-09406# @gridDimX@ /must/ be less than
@@ -947,7 +938,7 @@
     -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]
     gridDimX :: Word32
   , -- | @gridDimY@ is the number of local workgroups to dispatch in the Y
-    -- dimension. It must be less than or equal to
+    -- dimension. It /must/ be less than or equal to
     -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]
     --
     -- #VUID-VkCudaLaunchInfoNV-gridDimY-09407# @gridDimY@ /must/ be less than
@@ -955,7 +946,7 @@
     -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]
     gridDimY :: Word32
   , -- | @gridDimZ@ is the number of local workgroups to dispatch in the Z
-    -- dimension. It must be less than or equal to
+    -- dimension. It /must/ be less than or equal to
     -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]
     --
     -- #VUID-VkCudaLaunchInfoNV-gridDimZ-09408# @gridDimZ@ /must/ be less than
@@ -976,11 +967,11 @@
     --
     -- #VUID-VkCudaLaunchInfoNV-pParams-09410# @pParams@ /must/ be a pointer to
     -- a table of @paramCount@ parameters, corresponding to the arguments of
-    -- @function@.
+    -- @function@
     params :: Vector (Ptr ())
   , -- | @pExtras@ is reserved for future use.
     --
-    -- #VUID-VkCudaLaunchInfoNV-pExtras-09412# @pExtras@ must be NULL
+    -- #VUID-VkCudaLaunchInfoNV-pExtras-09412# @pExtras@ /must/ be NULL
     extras :: Vector (Ptr ())
   }
   deriving (Typeable)
diff --git a/src/Vulkan/Extensions/VK_NV_cuda_kernel_launch.hs-boot b/src/Vulkan/Extensions/VK_NV_cuda_kernel_launch.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_cuda_kernel_launch.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_cuda_kernel_launch.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_NV_cuda_kernel_launch - device extension
 --
--- == VK_NV_cuda_kernel_launch
+-- = VK_NV_cuda_kernel_launch
 --
 -- [__Name String__]
 --     @VK_NV_cuda_kernel_launch@
@@ -75,7 +75,7 @@
 -- 'getCudaModuleCacheNV' with a @NULL@ pointer to a buffer and with a
 -- valid pointer receiving the size; then another call of the same function
 -- with a valid pointer to a buffer to retrieve the data. The resulting
--- cache could then be user later for further runs of this application by
+-- cache could then be used later for further runs of this application by
 -- sending this cache instead of the PTX code (using the same
 -- 'createCudaModuleNV'), thus significantly speeding up the initialization
 -- of the CUDA module.
@@ -174,13 +174,7 @@
 --
 -- == See Also
 --
--- 'CudaFunctionCreateInfoNV', 'Vulkan.Extensions.Handles.CudaFunctionNV',
--- 'CudaLaunchInfoNV', 'CudaModuleCreateInfoNV',
--- 'Vulkan.Extensions.Handles.CudaModuleNV',
--- 'PhysicalDeviceCudaKernelLaunchFeaturesNV',
--- 'PhysicalDeviceCudaKernelLaunchPropertiesNV', 'cmdCudaLaunchKernelNV',
--- 'createCudaFunctionNV', 'createCudaModuleNV', 'destroyCudaFunctionNV',
--- 'destroyCudaModuleNV', 'getCudaModuleCacheNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_dedicated_allocation - device extension
 --
--- == VK_NV_dedicated_allocation
+-- = VK_NV_dedicated_allocation
 --
 -- [__Name String__]
 --     @VK_NV_dedicated_allocation@
@@ -168,9 +168,7 @@
 --
 -- == See Also
 --
--- 'DedicatedAllocationBufferCreateInfoNV',
--- 'DedicatedAllocationImageCreateInfoNV',
--- 'DedicatedAllocationMemoryAllocateInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -218,8 +216,6 @@
 -- to a dedicated memory resource
 --
 -- = Description
---
--- Note
 --
 -- Using a dedicated allocation for color and depth\/stencil attachments or
 -- other large images /may/ improve performance on some devices.
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_dedicated_allocation - device extension
 --
--- == VK_NV_dedicated_allocation
+-- = VK_NV_dedicated_allocation
 --
 -- [__Name String__]
 --     @VK_NV_dedicated_allocation@
@@ -168,9 +168,7 @@
 --
 -- == See Also
 --
--- 'DedicatedAllocationBufferCreateInfoNV',
--- 'DedicatedAllocationImageCreateInfoNV',
--- 'DedicatedAllocationMemoryAllocateInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_dedicated_allocation_image_aliasing - device extension
 --
--- == VK_NV_dedicated_allocation_image_aliasing
+-- = VK_NV_dedicated_allocation_image_aliasing
 --
 -- [__Name String__]
 --     @VK_NV_dedicated_allocation_image_aliasing@
@@ -21,9 +21,13 @@
 --     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
+--          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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -79,7 +83,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_dedicated_allocation_image_aliasing - device extension
 --
--- == VK_NV_dedicated_allocation_image_aliasing
+-- = VK_NV_dedicated_allocation_image_aliasing
 --
 -- [__Name String__]
 --     @VK_NV_dedicated_allocation_image_aliasing@
@@ -21,9 +21,13 @@
 --     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
+--          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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -79,7 +83,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs b/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs
--- a/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs
+++ b/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs
@@ -3,7 +3,7 @@
 --
 -- VK_NV_descriptor_pool_overallocation - device extension
 --
--- == VK_NV_descriptor_pool_overallocation
+-- = VK_NV_descriptor_pool_overallocation
 --
 -- [__Name String__]
 --     @VK_NV_descriptor_pool_overallocation@
@@ -21,7 +21,7 @@
 --     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -92,7 +92,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs-boot b/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_NV_descriptor_pool_overallocation - device extension
 --
--- == VK_NV_descriptor_pool_overallocation
+-- = VK_NV_descriptor_pool_overallocation
 --
 -- [__Name String__]
 --     @VK_NV_descriptor_pool_overallocation@
@@ -21,7 +21,7 @@
 --     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -92,7 +92,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_device_diagnostic_checkpoints - device extension
 --
--- == VK_NV_device_diagnostic_checkpoints
+-- = VK_NV_device_diagnostic_checkpoints
 --
 -- [__Name String__]
 --     @VK_NV_device_diagnostic_checkpoints@
@@ -22,7 +22,15 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_KHR_synchronization2
+--
 -- [__Contact__]
 --
 --     -   Nuno Subtil
@@ -61,6 +69,14 @@
 --
 -- -   'getQueueCheckpointDataNV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+-- is supported:
+--
+-- -   'getQueueCheckpointData2NV'
+--
 -- == New Structures
 --
 -- -   'CheckpointDataNV'
@@ -70,6 +86,19 @@
 --
 --     -   'QueueFamilyCheckpointPropertiesNV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+-- is supported:
+--
+-- -   'CheckpointData2NV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':
+--
+--     -   'QueueFamilyCheckpointProperties2NV'
+--
 -- == New Enum Constants
 --
 -- -   'NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME'
@@ -82,6 +111,18 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV'
+--
 -- == Version History
 --
 -- -   Revision 1, 2018-07-16 (Nuno Subtil)
@@ -94,8 +135,7 @@
 --
 -- == See Also
 --
--- 'CheckpointDataNV', 'QueueFamilyCheckpointPropertiesNV',
--- 'cmdSetCheckpointNV', 'getQueueCheckpointDataNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -106,8 +146,11 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints  ( cmdSetCheckpointNV
                                                               , getQueueCheckpointDataNV
+                                                              , getQueueCheckpointData2NV
                                                               , QueueFamilyCheckpointPropertiesNV(..)
                                                               , CheckpointDataNV(..)
+                                                              , QueueFamilyCheckpointProperties2NV(..)
+                                                              , CheckpointData2NV(..)
                                                               , NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION
                                                               , pattern NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION
                                                               , NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME
@@ -156,15 +199,19 @@
 import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
 import Vulkan.Core10.Handles (CommandBuffer_T)
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCheckpointNV))
+import Vulkan.Dynamic (DeviceCmds(pVkGetQueueCheckpointData2NV))
 import Vulkan.Dynamic (DeviceCmds(pVkGetQueueCheckpointDataNV))
 import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits)
 import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)
+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
 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.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CHECKPOINT_DATA_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV))
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
@@ -249,8 +296,8 @@
 -- available is returned in @pCheckpointDataCount@.
 --
 -- Otherwise, @pCheckpointDataCount@ /must/ point to a variable set by the
--- user to the number of elements in the @pCheckpointData@ array, and on
--- return the variable is overwritten with the number of structures
+-- application to the number of elements in the @pCheckpointData@ array,
+-- and on return the variable is overwritten with the number of structures
 -- actually written to @pCheckpointData@.
 --
 -- If @pCheckpointDataCount@ is less than the number of checkpoint markers
@@ -309,6 +356,82 @@
   pure $ (pCheckpointData')
 
 
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetQueueCheckpointData2NV
+  :: FunPtr (Ptr Queue_T -> Ptr Word32 -> Ptr CheckpointData2NV -> IO ()) -> Ptr Queue_T -> Ptr Word32 -> Ptr CheckpointData2NV -> IO ()
+
+-- | vkGetQueueCheckpointData2NV - Retrieve diagnostic checkpoint data
+--
+-- = Description
+--
+-- If @pCheckpointData@ is @NULL@, then the number of checkpoint markers
+-- available is returned in @pCheckpointDataCount@. Otherwise,
+-- @pCheckpointDataCount@ /must/ point to a variable set by the application
+-- to the number of elements in the @pCheckpointData@ array, and on return
+-- the variable is overwritten with the number of structures actually
+-- written to @pCheckpointData@.
+--
+-- If @pCheckpointDataCount@ is less than the number of checkpoint markers
+-- available, at most @pCheckpointDataCount@ structures will be written.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkGetQueueCheckpointData2NV-queue-03892# The device that
+--     @queue@ belongs to /must/ be in the lost state
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetQueueCheckpointData2NV-queue-parameter# @queue@ /must/ be
+--     a valid 'Vulkan.Core10.Handles.Queue' handle
+--
+-- -   #VUID-vkGetQueueCheckpointData2NV-pCheckpointDataCount-parameter#
+--     @pCheckpointDataCount@ /must/ be a valid pointer to a @uint32_t@
+--     value
+--
+-- -   #VUID-vkGetQueueCheckpointData2NV-pCheckpointData-parameter# If the
+--     value referenced by @pCheckpointDataCount@ is not @0@, and
+--     @pCheckpointData@ is not @NULL@, @pCheckpointData@ /must/ be a valid
+--     pointer to an array of @pCheckpointDataCount@ 'CheckpointData2NV'
+--     structures
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
+-- 'CheckpointData2NV', 'Vulkan.Core10.Handles.Queue'
+getQueueCheckpointData2NV :: forall io
+                           . (MonadIO io)
+                          => -- | @queue@ is the 'Vulkan.Core10.Handles.Queue' object the caller would
+                             -- like to retrieve checkpoint data for
+                             Queue
+                          -> io (("checkpointData" ::: Vector CheckpointData2NV))
+getQueueCheckpointData2NV queue = liftIO . evalContT $ do
+  let vkGetQueueCheckpointData2NVPtr = pVkGetQueueCheckpointData2NV (case queue of Queue{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetQueueCheckpointData2NVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetQueueCheckpointData2NV is null" Nothing Nothing
+  let vkGetQueueCheckpointData2NV' = mkVkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NVPtr
+  let queue' = queueHandle (queue)
+  pPCheckpointDataCount <- ContT $ bracket (callocBytes @Word32 4) free
+  lift $ traceAroundEvent "vkGetQueueCheckpointData2NV" (vkGetQueueCheckpointData2NV'
+                                                           queue'
+                                                           (pPCheckpointDataCount)
+                                                           (nullPtr))
+  pCheckpointDataCount <- lift $ peek @Word32 pPCheckpointDataCount
+  pPCheckpointData <- ContT $ bracket (callocBytes @CheckpointData2NV ((fromIntegral (pCheckpointDataCount)) * 32)) free
+  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCheckpointData `advancePtrBytes` (i * 32) :: Ptr CheckpointData2NV) . ($ ())) [0..(fromIntegral (pCheckpointDataCount)) - 1]
+  lift $ traceAroundEvent "vkGetQueueCheckpointData2NV" (vkGetQueueCheckpointData2NV'
+                                                           queue'
+                                                           (pPCheckpointDataCount)
+                                                           ((pPCheckpointData)))
+  pCheckpointDataCount' <- lift $ peek @Word32 pPCheckpointDataCount
+  pCheckpointData' <- lift $ generateM (fromIntegral (pCheckpointDataCount')) (\i -> peekCStruct @CheckpointData2NV (((pPCheckpointData) `advancePtrBytes` (32 * (i)) :: Ptr CheckpointData2NV)))
+  pure $ (pCheckpointData')
+
+
 -- | VkQueueFamilyCheckpointPropertiesNV - Return structure for queue family
 -- checkpoint information query
 --
@@ -430,6 +553,133 @@
 
 instance Zero CheckpointDataNV where
   zero = CheckpointDataNV
+           zero
+           zero
+
+
+-- | VkQueueFamilyCheckpointProperties2NV - Return structure for queue family
+-- checkpoint information query
+--
+-- = Description
+--
+-- Additional queue family information can be queried by setting
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2'::@pNext@
+-- to point to a 'QueueFamilyCheckpointProperties2NV' structure.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data QueueFamilyCheckpointProperties2NV = QueueFamilyCheckpointProperties2NV
+  { -- | @checkpointExecutionStageMask@ is a mask indicating which pipeline
+    -- stages the implementation can execute checkpoint markers in.
+    checkpointExecutionStageMask :: PipelineStageFlags2 }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (QueueFamilyCheckpointProperties2NV)
+#endif
+deriving instance Show QueueFamilyCheckpointProperties2NV
+
+instance ToCStruct QueueFamilyCheckpointProperties2NV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p QueueFamilyCheckpointProperties2NV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (checkpointExecutionStageMask)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (zero)
+    f
+
+instance FromCStruct QueueFamilyCheckpointProperties2NV where
+  peekCStruct p = do
+    checkpointExecutionStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))
+    pure $ QueueFamilyCheckpointProperties2NV
+             checkpointExecutionStageMask
+
+instance Storable QueueFamilyCheckpointProperties2NV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero QueueFamilyCheckpointProperties2NV where
+  zero = QueueFamilyCheckpointProperties2NV
+           zero
+
+
+-- | VkCheckpointData2NV - Return structure for command buffer checkpoint
+-- data
+--
+-- == Valid Usage (Implicit)
+--
+-- The stages at which a checkpoint marker /can/ be executed are
+-- implementation-defined and /can/ be queried by calling
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceQueueFamilyProperties2'.
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'getQueueCheckpointData2NV'
+data CheckpointData2NV = CheckpointData2NV
+  { -- | @stage@ indicates a single pipeline stage which the checkpoint marker
+    -- data refers to.
+    stage :: PipelineStageFlags2
+  , -- | @pCheckpointMarker@ contains the value of the last checkpoint marker
+    -- executed in the stage that @stage@ refers to.
+    checkpointMarker :: Ptr ()
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (CheckpointData2NV)
+#endif
+deriving instance Show CheckpointData2NV
+
+instance ToCStruct CheckpointData2NV where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p CheckpointData2NV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (stage)
+    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (checkpointMarker)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)
+    f
+
+instance FromCStruct CheckpointData2NV where
+  peekCStruct p = do
+    stage <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))
+    pCheckpointMarker <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))
+    pure $ CheckpointData2NV
+             stage pCheckpointMarker
+
+instance Storable CheckpointData2NV where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero CheckpointData2NV where
+  zero = CheckpointData2NV
            zero
            zero
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_device_diagnostic_checkpoints - device extension
 --
--- == VK_NV_device_diagnostic_checkpoints
+-- = VK_NV_device_diagnostic_checkpoints
 --
 -- [__Name String__]
 --     @VK_NV_device_diagnostic_checkpoints@
@@ -22,7 +22,15 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_KHR_synchronization2
+--
 -- [__Contact__]
 --
 --     -   Nuno Subtil
@@ -61,6 +69,14 @@
 --
 -- -   'getQueueCheckpointDataNV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+-- is supported:
+--
+-- -   'getQueueCheckpointData2NV'
+--
 -- == New Structures
 --
 -- -   'CheckpointDataNV'
@@ -70,6 +86,19 @@
 --
 --     -   'QueueFamilyCheckpointPropertiesNV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+-- is supported:
+--
+-- -   'CheckpointData2NV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':
+--
+--     -   'QueueFamilyCheckpointProperties2NV'
+--
 -- == New Enum Constants
 --
 -- -   'NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME'
@@ -82,6 +111,18 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV'
+--
 -- == Version History
 --
 -- -   Revision 1, 2018-07-16 (Nuno Subtil)
@@ -94,8 +135,7 @@
 --
 -- == See Also
 --
--- 'CheckpointDataNV', 'QueueFamilyCheckpointPropertiesNV',
--- 'cmdSetCheckpointNV', 'getQueueCheckpointDataNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -104,7 +144,9 @@
 --
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
-module Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints  ( CheckpointDataNV
+module Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints  ( CheckpointData2NV
+                                                              , CheckpointDataNV
+                                                              , QueueFamilyCheckpointProperties2NV
                                                               , QueueFamilyCheckpointPropertiesNV
                                                               ) where
 
@@ -112,12 +154,28 @@
 import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 
+data CheckpointData2NV
+
+instance ToCStruct CheckpointData2NV
+instance Show CheckpointData2NV
+
+instance FromCStruct CheckpointData2NV
+
+
 data CheckpointDataNV
 
 instance ToCStruct CheckpointDataNV
 instance Show CheckpointDataNV
 
 instance FromCStruct CheckpointDataNV
+
+
+data QueueFamilyCheckpointProperties2NV
+
+instance ToCStruct QueueFamilyCheckpointProperties2NV
+instance Show QueueFamilyCheckpointProperties2NV
+
+instance FromCStruct QueueFamilyCheckpointProperties2NV
 
 
 data QueueFamilyCheckpointPropertiesNV
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_device_diagnostics_config - device extension
 --
--- == VK_NV_device_diagnostics_config
+-- = VK_NV_device_diagnostics_config
 --
 -- [__Name String__]
 --     @VK_NV_device_diagnostics_config@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -94,9 +96,7 @@
 --
 -- == See Also
 --
--- 'DeviceDiagnosticsConfigCreateInfoNV',
--- 'DeviceDiagnosticsConfigFlagBitsNV', 'DeviceDiagnosticsConfigFlagsNV',
--- 'PhysicalDeviceDiagnosticsConfigFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_device_diagnostics_config - device extension
 --
--- == VK_NV_device_diagnostics_config
+-- = VK_NV_device_diagnostics_config
 --
 -- [__Name String__]
 --     @VK_NV_device_diagnostics_config@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -94,9 +96,7 @@
 --
 -- == See Also
 --
--- 'DeviceDiagnosticsConfigCreateInfoNV',
--- 'DeviceDiagnosticsConfigFlagBitsNV', 'DeviceDiagnosticsConfigFlagsNV',
--- 'PhysicalDeviceDiagnosticsConfigFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,6850 +3,6805 @@
 --
 -- VK_NV_device_generated_commands - device extension
 --
--- == VK_NV_device_generated_commands
---
--- [__Name String__]
---     @VK_NV_device_generated_commands@
---
--- [__Extension Type__]
---     Device extension
---
--- [__Registered Extension Number__]
---     278
---
--- [__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
---     <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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent 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.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_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',
---     '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_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',
---     '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_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',
---     '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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 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'
---     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-rasterizerDiscardEnable-09416#
---     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417#
---     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, 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-rasterizerDiscardEnable-09418#
---     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.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-rasterizerDiscardEnable-09419#
---     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, 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 a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420#
---     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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-09548# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09549# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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 there is a
---     shader object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 without 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 there is a
---     shader object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a
---     shader object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 there is a
---     shader object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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 the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or the bound graphics pipeline state 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-04875# If there is a
---     shader object 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
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
---     or 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 there is a
---     shader object bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage or 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-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 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- == 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
+-- = VK_NV_device_generated_commands
+--
+-- [__Name String__]
+--     @VK_NV_device_generated_commands@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     278
+--
+-- [__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 Vulkan 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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
+--
+-- [__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 @isPreprocessed@ to 'Vulkan.Core10.FundamentalTypes.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
+--
+-- No cross-references are available
+--
+-- == 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-unnormalizedCoordinates-09635#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-unnormalizedCoordinates-09636#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of
+--     resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor
+--     with type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595#
+--     Input attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pDepthInputAttachmentIndex-09596#
+--     Input attachment views accessed in a dynamic render pass via a
+--     shader object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-InputAttachmentIndex-09597# If
+--     an input attachment view accessed in a dynamic render pass via a
+--     shader object has an @InputAttachmentIndex@, the
+--     @InputAttachmentIndex@ /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08618# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07834# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07836# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07837# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07838# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07839# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07840# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07841# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07843# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07844# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07845# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07847# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07848# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03417# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-scissorCount-03418# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03419# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which 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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04876# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04877# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-logicOp-04878# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07621# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07622# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07623# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09416#
+--     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417#
+--     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, 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-rasterizerDiscardEnable-09418#
+--     If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419#
+--     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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-coverageModulationTableEnable-07488#
+--     If a shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420#
+--     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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-09548# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09549# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09642# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09643# If the bound
+--     graphics pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #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# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and that pipeline was created without
+--     enabling
+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'
+--     for @vertexInputs@, then 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 there is a
+--     shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-primitiveTopology-10286# If
+--     there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have set @primitiveTopology@ to
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
+--     prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913# If the bound
+--     graphics pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'
+--     dynamic state enabled, but without the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command, and the
+--     @pStrides@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04914# If there is a
+--     shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this draw command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-Input-07939# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeRobustness vertexAttributeRobustness>
+--     is not enabled and there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 there is a
+--     shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled and either the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-legacyVertexAttributes legacyVertexAttributes>
+--     feature is not enabled or the SPIR-V Type associated with a given
+--     @Input@ variable of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ is 64-bit, 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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 the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or the bound graphics pipeline state 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-04875# If there is a
+--     shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage or the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @primitiveTopology@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04879# If there is a
+--     shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09637# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
+--     feature is not enabled, the 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',
+--     there is a shader object bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or 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/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-stage-06481# The bound
+--     graphics pipeline /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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-deviceGeneratedCommandsNV ::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-deviceGeneratedCommandsNV ::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-deviceGeneratedCommandsNV ::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-deviceGeneratedCommandsNV ::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-deviceGeneratedCommandsNV ::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-deviceGeneratedCommandsNV ::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-deviceGeneratedCommandsNV# @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-deviceGeneratedCommandsNV ::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
+    -- '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@ is a 'IndirectCommandsTokenTypeNV' specifying 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@ is a 'IndirectStateFlagsNV' bitfield indicating 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.
+--
+-- 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-09585# If
+--     @pTokens@ contains an entry of
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_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 action command 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 action command 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# If @pipeline@ is
+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @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 in this buffer will not be modified. The contents and
+    -- the layout of this buffer are opaque to applications and /must/ not be
+    -- modified outside functions related to device-generated commands 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` 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 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- == 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 an application-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
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_device_generated_commands - device extension
 --
--- == VK_NV_device_generated_commands
+-- = VK_NV_device_generated_commands
 --
 -- [__Name String__]
 --     @VK_NV_device_generated_commands@
@@ -21,9 +21,13 @@
 --     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#versions-1.1 Vulkan 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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__Contact__]
 --
@@ -339,7 +343,7 @@
 -- 8) How do we allow re-using already “generated” @indirectCommands@?
 --
 -- Expose a @preprocessBuffer@ to reuse implementation-dependencyFlags
--- data. Set the @isPreprocessed@ to true in
+-- data. Set @isPreprocessed@ to 'Vulkan.Core10.FundamentalTypes.TRUE' in
 -- 'cmdExecuteGeneratedCommandsNV'.
 --
 -- 9) Under which conditions is 'cmdExecuteGeneratedCommandsNV' legal?
@@ -521,23 +525,7 @@
 --
 -- == 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'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs b/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs
--- a/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs
+++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs
@@ -3,7 +3,7 @@
 --
 -- VK_NV_device_generated_commands_compute - device extension
 --
--- == VK_NV_device_generated_commands_compute
+-- = VK_NV_device_generated_commands_compute
 --
 -- [__Name String__]
 --     @VK_NV_device_generated_commands_compute@
@@ -67,10 +67,12 @@
 --
 -- -   'BindPipelineIndirectCommandNV'
 --
--- -   'ComputePipelineIndirectBufferInfoNV'
---
 -- -   'PipelineIndirectDeviceAddressInfoNV'
 --
+-- -   Extending 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo':
+--
+--     -   'ComputePipelineIndirectBufferInfoNV'
+--
 -- -   Extending
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
 --     'Vulkan.Core10.Device.DeviceCreateInfo':
@@ -116,12 +118,7 @@
 --
 -- == See Also
 --
--- 'BindPipelineIndirectCommandNV', 'ComputePipelineIndirectBufferInfoNV',
--- 'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV',
--- 'PipelineIndirectDeviceAddressInfoNV',
--- 'cmdUpdatePipelineIndirectBufferNV',
--- 'getPipelineIndirectDeviceAddressNV',
--- 'getPipelineIndirectMemoryRequirementsNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -524,9 +521,6 @@
 -- -   #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
 --
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
--- a/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_NV_device_generated_commands_compute - device extension
 --
--- == VK_NV_device_generated_commands_compute
+-- = VK_NV_device_generated_commands_compute
 --
 -- [__Name String__]
 --     @VK_NV_device_generated_commands_compute@
@@ -67,10 +67,12 @@
 --
 -- -   'BindPipelineIndirectCommandNV'
 --
--- -   'ComputePipelineIndirectBufferInfoNV'
---
 -- -   'PipelineIndirectDeviceAddressInfoNV'
 --
+-- -   Extending 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo':
+--
+--     -   'ComputePipelineIndirectBufferInfoNV'
+--
 -- -   Extending
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
 --     'Vulkan.Core10.Device.DeviceCreateInfo':
@@ -116,12 +118,7 @@
 --
 -- == See Also
 --
--- 'BindPipelineIndirectCommandNV', 'ComputePipelineIndirectBufferInfoNV',
--- 'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV',
--- 'PipelineIndirectDeviceAddressInfoNV',
--- 'cmdUpdatePipelineIndirectBufferNV',
--- 'getPipelineIndirectDeviceAddressNV',
--- 'getPipelineIndirectMemoryRequirementsNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_displacement_micromap - device extension
 --
--- == VK_NV_displacement_micromap
+-- = VK_NV_displacement_micromap
 --
 -- [__Name String__]
 --     @VK_NV_displacement_micromap@
@@ -148,10 +148,7 @@
 --
 -- == See Also
 --
--- 'AccelerationStructureTrianglesDisplacementMicromapNV',
--- 'DisplacementMicromapFormatNV',
--- 'PhysicalDeviceDisplacementMicromapFeaturesNV',
--- 'PhysicalDeviceDisplacementMicromapPropertiesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -558,8 +555,6 @@
 --
 -- = Description
 --
--- Note
---
 -- For compactness, these values are stored as 16-bit in some structures.
 --
 -- = See Also
@@ -570,19 +565,19 @@
 
 -- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error
 
--- | 'DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV' indicates that
+-- | 'DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV' specifies that
 -- the given micromap format encodes 64 micro-triangles worth of
 -- displacements in 64 bytes as described in
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#displacement-micromap-encoding Displacement Micromap Encoding>.
 pattern DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV = DisplacementMicromapFormatNV 1
 
--- | 'DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV' indicates that
+-- | 'DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV' specifies that
 -- the given micromap format encodes 256 micro-triangles worth of
 -- displacements in 128 bytes as described in
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#displacement-micromap-encoding Displacement Micromap Encoding>.
 pattern DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV = DisplacementMicromapFormatNV 2
 
--- | 'DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV' indicates
+-- | 'DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV' specifies
 -- that the given micromap format encodes 1024 micro-triangles worth of
 -- displacements in 128 bytes as described in
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#displacement-micromap-encoding Displacement Micromap Encoding>.
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_displacement_micromap - device extension
 --
--- == VK_NV_displacement_micromap
+-- = VK_NV_displacement_micromap
 --
 -- [__Name String__]
 --     @VK_NV_displacement_micromap@
@@ -148,10 +148,7 @@
 --
 -- == See Also
 --
--- 'AccelerationStructureTrianglesDisplacementMicromapNV',
--- 'DisplacementMicromapFormatNV',
--- 'PhysicalDeviceDisplacementMicromapFeaturesNV',
--- 'PhysicalDeviceDisplacementMicromapPropertiesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_NV_display_stereo.hs b/src/Vulkan/Extensions/VK_NV_display_stereo.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_display_stereo.hs
@@ -0,0 +1,352 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_display_stereo - instance extension
+--
+-- = VK_NV_display_stereo
+--
+-- [__Name String__]
+--     @VK_NV_display_stereo@
+--
+-- [__Extension Type__]
+--     Instance extension
+--
+-- [__Registered Extension Number__]
+--     552
+--
+-- [__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>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2 VK_KHR_get_display_properties2>
+--
+-- [__Contact__]
+--
+--     -   Russell Chou
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_display_stereo] @russellcnv%0A*Here describe the issue or question you have about the VK_NV_display_stereo extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_NV_display_stereo.adoc VK_NV_display_stereo>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-11-20
+--
+-- [__Contributors__]
+--
+--     -   Russell Chou, NVIDIA
+--
+--     -   Jeff Juliano, NVIDIA
+--
+--     -   James Jones, NVIDIA
+--
+-- == Description
+--
+-- This extension allows the application to choose which type of 3D stereo
+-- hardware it wants to use so the driver can configure it properly. This
+-- configuration is useful for swapchains created from display surfaces
+-- because some environments do not have an intermediate windowing system
+-- available for easy configuration. This extension will override any
+-- stereo type configuration in the windowing system.
+--
+-- For HDMI 3D, only some display modes support stereo rendering, and a new
+-- structure is needed to expose that information to the application.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayModeProperties2KHR':
+--
+--     -   'DisplayModeStereoPropertiesNV'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_display.DisplaySurfaceCreateInfoKHR':
+--
+--     -   'DisplaySurfaceStereoCreateInfoNV'
+--
+-- == New Enums
+--
+-- -   'DisplaySurfaceStereoTypeNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_DISPLAY_STEREO_EXTENSION_NAME'
+--
+-- -   'NV_DISPLAY_STEREO_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-11-20 (Russell Chou)
+--
+--     -   Initial release
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_display_stereo 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_display_stereo  ( DisplaySurfaceStereoCreateInfoNV(..)
+                                               , DisplayModeStereoPropertiesNV(..)
+                                               , DisplaySurfaceStereoTypeNV( DISPLAY_SURFACE_STEREO_TYPE_NONE_NV
+                                                                           , DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV
+                                                                           , DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV
+                                                                           , DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV
+                                                                           , ..
+                                                                           )
+                                               , NV_DISPLAY_STEREO_SPEC_VERSION
+                                               , pattern NV_DISPLAY_STEREO_SPEC_VERSION
+                                               , NV_DISPLAY_STEREO_EXTENSION_NAME
+                                               , pattern NV_DISPLAY_STEREO_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_DISPLAY_MODE_STEREO_PROPERTIES_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV))
+-- | VkDisplaySurfaceStereoCreateInfoNV - Structure specifying stereo
+-- parameters of a newly created display plane surface object
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_display_stereo VK_NV_display_stereo>,
+-- 'DisplaySurfaceStereoTypeNV',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data DisplaySurfaceStereoCreateInfoNV = DisplaySurfaceStereoCreateInfoNV
+  { -- | #wsi-displaySurfaceStereoType# @stereoType@ is a
+    -- 'DisplaySurfaceStereoTypeNV' value specifying the type of 3D stereo
+    -- presentation the display will be configured for.
+    --
+    -- #VUID-VkDisplaySurfaceStereoCreateInfoNV-stereoType-parameter#
+    -- @stereoType@ /must/ be a valid 'DisplaySurfaceStereoTypeNV' value
+    stereoType :: DisplaySurfaceStereoTypeNV }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (DisplaySurfaceStereoCreateInfoNV)
+#endif
+deriving instance Show DisplaySurfaceStereoCreateInfoNV
+
+instance ToCStruct DisplaySurfaceStereoCreateInfoNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p DisplaySurfaceStereoCreateInfoNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DisplaySurfaceStereoTypeNV)) (stereoType)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DisplaySurfaceStereoTypeNV)) (zero)
+    f
+
+instance FromCStruct DisplaySurfaceStereoCreateInfoNV where
+  peekCStruct p = do
+    stereoType <- peek @DisplaySurfaceStereoTypeNV ((p `plusPtr` 16 :: Ptr DisplaySurfaceStereoTypeNV))
+    pure $ DisplaySurfaceStereoCreateInfoNV
+             stereoType
+
+instance Storable DisplaySurfaceStereoCreateInfoNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero DisplaySurfaceStereoCreateInfoNV where
+  zero = DisplaySurfaceStereoCreateInfoNV
+           zero
+
+
+-- | VkDisplayModeStereoPropertiesNV - Structure describing the stereo
+-- properties of a display mode
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_display_stereo VK_NV_display_stereo>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data DisplayModeStereoPropertiesNV = DisplayModeStereoPropertiesNV
+  { -- | @hdmi3DSupported@ indicates whether this display mode can be used for a
+    -- display surface configured for 'DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV'.
+    hdmi3DSupported :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (DisplayModeStereoPropertiesNV)
+#endif
+deriving instance Show DisplayModeStereoPropertiesNV
+
+instance ToCStruct DisplayModeStereoPropertiesNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p DisplayModeStereoPropertiesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (hdmi3DSupported))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct DisplayModeStereoPropertiesNV where
+  peekCStruct p = do
+    hdmi3DSupported <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ DisplayModeStereoPropertiesNV
+             (bool32ToBool hdmi3DSupported)
+
+instance Storable DisplayModeStereoPropertiesNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero DisplayModeStereoPropertiesNV where
+  zero = DisplayModeStereoPropertiesNV
+           zero
+
+
+-- | VkDisplaySurfaceStereoTypeNV - 3D Stereo type
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_display_stereo VK_NV_display_stereo>,
+-- 'DisplaySurfaceStereoCreateInfoNV'
+newtype DisplaySurfaceStereoTypeNV = DisplaySurfaceStereoTypeNV Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'DISPLAY_SURFACE_STEREO_TYPE_NONE_NV' specifies no configuration for
+-- stereo presentation. This is the default behavior if
+-- 'DisplaySurfaceStereoCreateInfoNV' is not provided.
+pattern DISPLAY_SURFACE_STEREO_TYPE_NONE_NV = DisplaySurfaceStereoTypeNV 0
+
+-- | 'DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV' specifies configuration for
+-- glasses that connect via a DIN connector on the back of the graphics
+-- card.
+pattern DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV = DisplaySurfaceStereoTypeNV 1
+
+-- | 'DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV' specifies configuration for
+-- HDMI 3D compatible display devices with their own stereo emitters. This
+-- is also known as HDMI Frame Packed Stereo, where the left and right eye
+-- images are stacked into a single frame with a doubled pixel clock and
+-- refresh rate.
+pattern DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV = DisplaySurfaceStereoTypeNV 2
+
+-- | 'DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV' specifies
+-- configuration for DisplayPort display devices with in-band stereo
+-- signaling and emitters.
+pattern DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV = DisplaySurfaceStereoTypeNV 3
+
+{-# COMPLETE
+  DISPLAY_SURFACE_STEREO_TYPE_NONE_NV
+  , DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV
+  , DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV
+  , DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV ::
+    DisplaySurfaceStereoTypeNV
+  #-}
+
+conNameDisplaySurfaceStereoTypeNV :: String
+conNameDisplaySurfaceStereoTypeNV = "DisplaySurfaceStereoTypeNV"
+
+enumPrefixDisplaySurfaceStereoTypeNV :: String
+enumPrefixDisplaySurfaceStereoTypeNV = "DISPLAY_SURFACE_STEREO_TYPE_"
+
+showTableDisplaySurfaceStereoTypeNV :: [(DisplaySurfaceStereoTypeNV, String)]
+showTableDisplaySurfaceStereoTypeNV =
+  [
+    ( DISPLAY_SURFACE_STEREO_TYPE_NONE_NV
+    , "NONE_NV"
+    )
+  ,
+    ( DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV
+    , "ONBOARD_DIN_NV"
+    )
+  ,
+    ( DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV
+    , "HDMI_3D_NV"
+    )
+  ,
+    ( DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV
+    , "INBAND_DISPLAYPORT_NV"
+    )
+  ]
+
+instance Show DisplaySurfaceStereoTypeNV where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixDisplaySurfaceStereoTypeNV
+      showTableDisplaySurfaceStereoTypeNV
+      conNameDisplaySurfaceStereoTypeNV
+      (\(DisplaySurfaceStereoTypeNV x) -> x)
+      (showsPrec 11)
+
+instance Read DisplaySurfaceStereoTypeNV where
+  readPrec =
+    enumReadPrec
+      enumPrefixDisplaySurfaceStereoTypeNV
+      showTableDisplaySurfaceStereoTypeNV
+      conNameDisplaySurfaceStereoTypeNV
+      DisplaySurfaceStereoTypeNV
+
+type NV_DISPLAY_STEREO_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_NV_DISPLAY_STEREO_SPEC_VERSION"
+pattern NV_DISPLAY_STEREO_SPEC_VERSION :: forall a . Integral a => a
+pattern NV_DISPLAY_STEREO_SPEC_VERSION = 1
+
+
+type NV_DISPLAY_STEREO_EXTENSION_NAME = "VK_NV_display_stereo"
+
+-- No documentation found for TopLevel "VK_NV_DISPLAY_STEREO_EXTENSION_NAME"
+pattern NV_DISPLAY_STEREO_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern NV_DISPLAY_STEREO_EXTENSION_NAME = "VK_NV_display_stereo"
+
diff --git a/src/Vulkan/Extensions/VK_NV_display_stereo.hs-boot b/src/Vulkan/Extensions/VK_NV_display_stereo.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_display_stereo.hs-boot
@@ -0,0 +1,128 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_display_stereo - instance extension
+--
+-- = VK_NV_display_stereo
+--
+-- [__Name String__]
+--     @VK_NV_display_stereo@
+--
+-- [__Extension Type__]
+--     Instance extension
+--
+-- [__Registered Extension Number__]
+--     552
+--
+-- [__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>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2 VK_KHR_get_display_properties2>
+--
+-- [__Contact__]
+--
+--     -   Russell Chou
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_display_stereo] @russellcnv%0A*Here describe the issue or question you have about the VK_NV_display_stereo extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_NV_display_stereo.adoc VK_NV_display_stereo>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-11-20
+--
+-- [__Contributors__]
+--
+--     -   Russell Chou, NVIDIA
+--
+--     -   Jeff Juliano, NVIDIA
+--
+--     -   James Jones, NVIDIA
+--
+-- == Description
+--
+-- This extension allows the application to choose which type of 3D stereo
+-- hardware it wants to use so the driver can configure it properly. This
+-- configuration is useful for swapchains created from display surfaces
+-- because some environments do not have an intermediate windowing system
+-- available for easy configuration. This extension will override any
+-- stereo type configuration in the windowing system.
+--
+-- For HDMI 3D, only some display modes support stereo rendering, and a new
+-- structure is needed to expose that information to the application.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayModeProperties2KHR':
+--
+--     -   'DisplayModeStereoPropertiesNV'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_display.DisplaySurfaceCreateInfoKHR':
+--
+--     -   'DisplaySurfaceStereoCreateInfoNV'
+--
+-- == New Enums
+--
+-- -   'DisplaySurfaceStereoTypeNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_DISPLAY_STEREO_EXTENSION_NAME'
+--
+-- -   'NV_DISPLAY_STEREO_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-11-20 (Russell Chou)
+--
+--     -   Initial release
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_display_stereo 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_display_stereo  ( DisplayModeStereoPropertiesNV
+                                               , DisplaySurfaceStereoCreateInfoNV
+                                               ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data DisplayModeStereoPropertiesNV
+
+instance ToCStruct DisplayModeStereoPropertiesNV
+instance Show DisplayModeStereoPropertiesNV
+
+instance FromCStruct DisplayModeStereoPropertiesNV
+
+
+data DisplaySurfaceStereoCreateInfoNV
+
+instance ToCStruct DisplaySurfaceStereoCreateInfoNV
+instance Show DisplaySurfaceStereoCreateInfoNV
+
+instance FromCStruct DisplaySurfaceStereoCreateInfoNV
+
diff --git a/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs b/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs
--- a/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs
+++ b/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs
@@ -3,7 +3,7 @@
 --
 -- VK_NV_extended_sparse_address_space - device extension
 --
--- == VK_NV_extended_sparse_address_space
+-- = VK_NV_extended_sparse_address_space
 --
 -- [__Name String__]
 --     @VK_NV_extended_sparse_address_space@
@@ -87,8 +87,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV',
--- 'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
--- a/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_NV_extended_sparse_address_space - device extension
 --
--- == VK_NV_extended_sparse_address_space
+-- = VK_NV_extended_sparse_address_space
 --
 -- [__Name String__]
 --     @VK_NV_extended_sparse_address_space@
@@ -87,8 +87,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV',
--- 'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_external_memory - device extension
 --
--- == VK_NV_external_memory
+-- = VK_NV_external_memory
 --
 -- [__Name String__]
 --     @VK_NV_external_memory@
@@ -127,7 +127,7 @@
 --
 -- == See Also
 --
--- 'ExportMemoryAllocateInfoNV', 'ExternalMemoryImageCreateInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_external_memory - device extension
 --
--- == VK_NV_external_memory
+-- = VK_NV_external_memory
 --
 -- [__Name String__]
 --     @VK_NV_external_memory@
@@ -127,7 +127,7 @@
 --
 -- == See Also
 --
--- 'ExportMemoryAllocateInfoNV', 'ExternalMemoryImageCreateInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_external_memory_capabilities - instance extension
 --
--- == VK_NV_external_memory_capabilities
+-- = VK_NV_external_memory_capabilities
 --
 -- [__Name String__]
 --     @VK_NV_external_memory_capabilities@
@@ -128,10 +128,7 @@
 --
 -- == See Also
 --
--- 'ExternalImageFormatPropertiesNV', 'ExternalMemoryFeatureFlagBitsNV',
--- 'ExternalMemoryFeatureFlagsNV', 'ExternalMemoryHandleTypeFlagBitsNV',
--- 'ExternalMemoryHandleTypeFlagsNV',
--- 'getPhysicalDeviceExternalImageFormatPropertiesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_external_memory_capabilities - instance extension
 --
--- == VK_NV_external_memory_capabilities
+-- = VK_NV_external_memory_capabilities
 --
 -- [__Name String__]
 --     @VK_NV_external_memory_capabilities@
@@ -128,10 +128,7 @@
 --
 -- == See Also
 --
--- 'ExternalImageFormatPropertiesNV', 'ExternalMemoryFeatureFlagBitsNV',
--- 'ExternalMemoryFeatureFlagsNV', 'ExternalMemoryHandleTypeFlagBitsNV',
--- 'ExternalMemoryHandleTypeFlagsNV',
--- 'getPhysicalDeviceExternalImageFormatPropertiesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_external_memory_rdma - device extension
 --
--- == VK_NV_external_memory_rdma
+-- = VK_NV_external_memory_rdma
 --
 -- [__Name String__]
 --     @VK_NV_external_memory_rdma@
@@ -22,6 +22,8 @@
 --
 -- [__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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -159,9 +161,7 @@
 --
 -- == See Also
 --
--- 'MemoryGetRemoteAddressInfoNV',
--- 'PhysicalDeviceExternalMemoryRDMAFeaturesNV', 'RemoteAddressNV',
--- 'getMemoryRemoteAddressNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_external_memory_rdma - device extension
 --
--- == VK_NV_external_memory_rdma
+-- = VK_NV_external_memory_rdma
 --
 -- [__Name String__]
 --     @VK_NV_external_memory_rdma@
@@ -22,6 +22,8 @@
 --
 -- [__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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -159,9 +161,7 @@
 --
 -- == See Also
 --
--- 'MemoryGetRemoteAddressInfoNV',
--- 'PhysicalDeviceExternalMemoryRDMAFeaturesNV', 'RemoteAddressNV',
--- 'getMemoryRemoteAddressNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_external_memory_win32 - device extension
 --
--- == VK_NV_external_memory_win32
+-- = VK_NV_external_memory_win32
 --
 -- [__Name String__]
 --     @VK_NV_external_memory_win32@
@@ -267,8 +267,7 @@
 --
 -- == See Also
 --
--- 'ExportMemoryWin32HandleInfoNV', 'ImportMemoryWin32HandleInfoNV',
--- 'getMemoryWin32HandleNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -498,12 +497,11 @@
 --
 -- = Description
 --
--- If this structure is not present, or if @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
+-- If this structure is not present, or if @pAttributes@ is @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
 --
 -- @DXGI_SHARED_RESOURCE_READ@ | @DXGI_SHARED_RESOURCE_WRITE@
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_external_memory_win32 - device extension
 --
--- == VK_NV_external_memory_win32
+-- = VK_NV_external_memory_win32
 --
 -- [__Name String__]
 --     @VK_NV_external_memory_win32@
@@ -267,8 +267,7 @@
 --
 -- == See Also
 --
--- 'ExportMemoryWin32HandleInfoNV', 'ImportMemoryWin32HandleInfoNV',
--- 'getMemoryWin32HandleNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_fill_rectangle - device extension
 --
--- == VK_NV_fill_rectangle
+-- = VK_NV_fill_rectangle
 --
 -- [__Name String__]
 --     @VK_NV_fill_rectangle@
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_fragment_coverage_to_color - device extension
 --
--- == VK_NV_fragment_coverage_to_color
+-- = VK_NV_fragment_coverage_to_color
 --
 -- [__Name String__]
 --     @VK_NV_fragment_coverage_to_color@
@@ -82,8 +82,7 @@
 --
 -- == See Also
 --
--- 'PipelineCoverageToColorStateCreateFlagsNV',
--- 'PipelineCoverageToColorStateCreateInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -255,6 +254,7 @@
 -- = See Also
 --
 -- <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.Flags',
 -- 'PipelineCoverageToColorStateCreateInfoNV'
 newtype PipelineCoverageToColorStateCreateFlagsNV = PipelineCoverageToColorStateCreateFlagsNV Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_fragment_coverage_to_color - device extension
 --
--- == VK_NV_fragment_coverage_to_color
+-- = VK_NV_fragment_coverage_to_color
 --
 -- [__Name String__]
 --     @VK_NV_fragment_coverage_to_color@
@@ -82,8 +82,7 @@
 --
 -- == See Also
 --
--- 'PipelineCoverageToColorStateCreateFlagsNV',
--- 'PipelineCoverageToColorStateCreateInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_fragment_shader_barycentric - device extension
 --
--- == VK_NV_fragment_shader_barycentric
+-- = VK_NV_fragment_shader_barycentric
 --
 -- [__Name String__]
 --     @VK_NV_fragment_shader_barycentric@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -49,7 +51,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_fragment_shader_barycentric.txt GL_NV_fragment_shader_barycentric>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_fragment_shader_barycentric.txt GL_NV_fragment_shader_barycentric>
 --
 -- [__Contributors__]
 --
@@ -183,7 +185,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_fragment_shading_rate_enums - device extension
 --
--- == VK_NV_fragment_shading_rate_enums
+-- = VK_NV_fragment_shading_rate_enums
 --
 -- [__Name String__]
 --     @VK_NV_fragment_shading_rate_enums@
@@ -161,11 +161,7 @@
 --
 -- == See Also
 --
--- 'FragmentShadingRateNV', 'FragmentShadingRateTypeNV',
--- 'PhysicalDeviceFragmentShadingRateEnumsFeaturesNV',
--- 'PhysicalDeviceFragmentShadingRateEnumsPropertiesNV',
--- 'PipelineFragmentShadingRateEnumStateCreateInfoNV',
--- 'cmdSetFragmentShadingRateEnumNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -282,8 +278,6 @@
 -- 'PipelineFragmentShadingRateEnumStateCreateInfoNV' values used to create
 -- the currently active pipeline.
 --
--- Note
---
 -- This command allows specifying additional shading rates beyond those
 -- supported by
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'.
@@ -293,24 +287,24 @@
 -- == Valid Usage
 --
 -- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04576#
---     If
+--     If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
---     is not enabled, @shadingRate@ /must/ be
+--     feature is not enabled, @shadingRate@ /must/ be
 --     'FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV'
 --
 -- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-supersampleFragmentShadingRates-04577#
---     If
+--     If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates>
---     is not enabled, @shadingRate@ /must/ not be
+--     feature is not enabled, @shadingRate@ /must/ not be
 --     'FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV',
 --     'FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV',
 --     'FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV', or
 --     'FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV'
 --
 -- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-noInvocationFragmentShadingRates-04578#
---     If
+--     If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates>
---     is not enabled, @shadingRate@ /must/ not be
+--     feature is not enabled, @shadingRate@ /must/ not be
 --     'FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV'
 --
 -- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentShadingRateEnums-04579#
@@ -712,10 +706,12 @@
 -- 'FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV', and
 -- 'FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV' as a pipeline,
 -- primitive, or attachment shading rate, the
--- @supersampleFragmentShadingRates@ feature /must/ be enabled. To use the
--- shading rate 'FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV' as a pipeline,
--- primitive, or attachment shading rate, the
--- @noInvocationFragmentShadingRates@ feature /must/ be enabled.
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates>
+-- feature /must/ be enabled. To use the shading rate
+-- 'FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV' as a pipeline, primitive, or
+-- attachment shading rate, the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates>
+-- feature /must/ be enabled.
 --
 -- = See Also
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_fragment_shading_rate_enums - device extension
 --
--- == VK_NV_fragment_shading_rate_enums
+-- = VK_NV_fragment_shading_rate_enums
 --
 -- [__Name String__]
 --     @VK_NV_fragment_shading_rate_enums@
@@ -161,11 +161,7 @@
 --
 -- == See Also
 --
--- 'FragmentShadingRateNV', 'FragmentShadingRateTypeNV',
--- 'PhysicalDeviceFragmentShadingRateEnumsFeaturesNV',
--- 'PhysicalDeviceFragmentShadingRateEnumsPropertiesNV',
--- 'PipelineFragmentShadingRateEnumStateCreateInfoNV',
--- 'cmdSetFragmentShadingRateEnumNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_framebuffer_mixed_samples - device extension
 --
--- == VK_NV_framebuffer_mixed_samples
+-- = VK_NV_framebuffer_mixed_samples
 --
 -- [__Name String__]
 --     @VK_NV_framebuffer_mixed_samples@
@@ -23,6 +23,12 @@
 -- [__Extension and Version Dependencies__]
 --     None
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_KHR_dynamic_rendering
+--
 -- [__Contact__]
 --
 --     -   Jeff Bolz
@@ -85,6 +91,18 @@
 --
 --     -   'PipelineCoverageModulationStateCreateInfoNV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.CommandBuffer.CommandBufferInheritanceInfo',
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':
+--
+--     -   'AttachmentSampleCountInfoNV'
+--
 -- == New Enums
 --
 -- -   'CoverageModulationModeNV'
@@ -103,6 +121,16 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.Enums.StructureType.StructureType':
+--
+--     -   'STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV'
+--
 -- == Version History
 --
 -- -   Revision 1, 2017-06-04 (Jeff Bolz)
@@ -111,9 +139,7 @@
 --
 -- == See Also
 --
--- 'CoverageModulationModeNV',
--- 'PipelineCoverageModulationStateCreateFlagsNV',
--- 'PipelineCoverageModulationStateCreateInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -122,7 +148,8 @@
 --
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
-module Vulkan.Extensions.VK_NV_framebuffer_mixed_samples  ( PipelineCoverageModulationStateCreateInfoNV(..)
+module Vulkan.Extensions.VK_NV_framebuffer_mixed_samples  ( pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV
+                                                          , PipelineCoverageModulationStateCreateInfoNV(..)
                                                           , PipelineCoverageModulationStateCreateFlagsNV(..)
                                                           , CoverageModulationModeNV( COVERAGE_MODULATION_MODE_NONE_NV
                                                                                     , COVERAGE_MODULATION_MODE_RGB_NV
@@ -130,10 +157,12 @@
                                                                                     , COVERAGE_MODULATION_MODE_RGBA_NV
                                                                                     , ..
                                                                                     )
+                                                          , AttachmentSampleCountInfoNV
                                                           , NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION
                                                           , pattern NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION
                                                           , NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME
                                                           , pattern NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME
+                                                          , AttachmentSampleCountInfoAMD(..)
                                                           ) where
 
 import Data.Bits (Bits)
@@ -183,10 +212,17 @@
 import Vulkan.CStruct.Utils (advancePtrBytes)
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Extensions.VK_AMD_mixed_attachment_samples (AttachmentSampleCountInfoAMD)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Flags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV))
+import Vulkan.Extensions.VK_AMD_mixed_attachment_samples (AttachmentSampleCountInfoAMD(..))
+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV"
+pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
+
+
 -- | VkPipelineCoverageModulationStateCreateInfoNV - Structure specifying
 -- parameters controlling coverage modulation
 --
@@ -220,7 +256,7 @@
 -- implementation-dependent precision, which is at least as fine as 1 \/ N,
 -- and clamped to [0,1].
 --
--- For each color attachment with a floating point or normalized color
+-- For each color attachment with a floating-point or normalized color
 -- format, each fragment output color value is replicated to M values which
 -- /can/ each be modulated (multiplied) by that color sample’s associated
 -- value of R. Which components are modulated is controlled by
@@ -357,6 +393,7 @@
 -- = See Also
 --
 -- <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.Flags',
 -- 'PipelineCoverageModulationStateCreateInfoNV'
 newtype PipelineCoverageModulationStateCreateFlagsNV = PipelineCoverageModulationStateCreateFlagsNV Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
@@ -463,6 +500,10 @@
       showTableCoverageModulationModeNV
       conNameCoverageModulationModeNV
       CoverageModulationModeNV
+
+-- No documentation found for TopLevel "VkAttachmentSampleCountInfoNV"
+type AttachmentSampleCountInfoNV = AttachmentSampleCountInfoAMD
+
 
 type NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION = 1
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_framebuffer_mixed_samples - device extension
 --
--- == VK_NV_framebuffer_mixed_samples
+-- = VK_NV_framebuffer_mixed_samples
 --
 -- [__Name String__]
 --     @VK_NV_framebuffer_mixed_samples@
@@ -23,6 +23,12 @@
 -- [__Extension and Version Dependencies__]
 --     None
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_VERSION_1_3
+--
+--     -   Interacts with VK_KHR_dynamic_rendering
+--
 -- [__Contact__]
 --
 --     -   Jeff Bolz
@@ -85,6 +91,18 @@
 --
 --     -   'PipelineCoverageModulationStateCreateInfoNV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.CommandBuffer.CommandBufferInheritanceInfo',
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':
+--
+--     -   'AttachmentSampleCountInfoNV'
+--
 -- == New Enums
 --
 -- -   'CoverageModulationModeNV'
@@ -103,6 +121,16 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
+-- or
+-- <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.Core10.Enums.StructureType.StructureType':
+--
+--     -   'STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV'
+--
 -- == Version History
 --
 -- -   Revision 1, 2017-06-04 (Jeff Bolz)
@@ -111,9 +139,7 @@
 --
 -- == See Also
 --
--- 'CoverageModulationModeNV',
--- 'PipelineCoverageModulationStateCreateFlagsNV',
--- 'PipelineCoverageModulationStateCreateInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_geometry_shader_passthrough - device extension
 --
--- == VK_NV_geometry_shader_passthrough
+-- = VK_NV_geometry_shader_passthrough
 --
 -- [__Name String__]
 --     @VK_NV_geometry_shader_passthrough@
@@ -42,7 +42,9 @@
 --     -   This extension provides API support for
 --         <https://registry.khronos.org/OpenGL/extensions/NV/NV_geometry_shader_passthrough.txt GL_NV_geometry_shader_passthrough>
 --
---     -   This extension requires the @geometryShader@ feature.
+--     -   This extension requires the
+--         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--         feature.
 --
 -- [__Contributors__]
 --
@@ -75,7 +77,7 @@
 -- When using GLSL source-based shading languages, the @passthrough@ layout
 -- qualifier from @GL_NV_geometry_shader_passthrough@ maps to the
 -- @PassthroughNV@ decoration. To use the @passthrough@ layout, in GLSL the
--- @GL_NV_geometry_shader_passthrough@ extension must be enabled. Behaviour
+-- @GL_NV_geometry_shader_passthrough@ extension must be enabled. Behavior
 -- is described in the @GL_NV_geometry_shader_passthrough@ extension
 -- specification.
 --
@@ -121,7 +123,7 @@
 --
 -- __RESOLVED__: This is described in
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-passthrough-interface Passthrough Interface Matching>.
--- In GL when using passthough geometry shaders in separable mode, all
+-- In GL when using passthrough geometry shaders in separable mode, all
 -- inputs must also be explicitly assigned location layout qualifiers. In
 -- Vulkan all SPIR-V shader inputs (except built-ins) must also have
 -- location decorations specified. Redeclarations of built-in variables
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_glsl_shader - device extension
 --
--- == VK_NV_glsl_shader
+-- = VK_NV_glsl_shader
 --
 -- [__Name String__]
 --     @VK_NV_glsl_shader@
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_inherited_viewport_scissor - device extension
 --
--- == VK_NV_inherited_viewport_scissor
+-- = VK_NV_inherited_viewport_scissor
 --
 -- [__Name String__]
 --     @VK_NV_inherited_viewport_scissor@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -142,8 +144,7 @@
 --
 -- == See Also
 --
--- 'CommandBufferInheritanceViewportScissorInfoNV',
--- 'PhysicalDeviceInheritedViewportScissorFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -306,8 +307,6 @@
 -- by binding a graphics pipeline that does not specify this state as
 -- dynamic.
 --
--- Note
---
 -- Due to this restriction, applications /should/ ensure either all or none
 -- of the graphics pipelines bound in this secondary command buffer use
 -- dynamic viewport\/scissor counts.
@@ -346,8 +345,6 @@
 --
 -- -   If the provisional inherited state passes both checks, then it
 --     becomes the actual inherited state.
---
--- Note
 --
 -- There is no support for inheriting dynamic state from a secondary
 -- command buffer executed as part of a different
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_inherited_viewport_scissor - device extension
 --
--- == VK_NV_inherited_viewport_scissor
+-- = VK_NV_inherited_viewport_scissor
 --
 -- [__Name String__]
 --     @VK_NV_inherited_viewport_scissor@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -142,8 +144,7 @@
 --
 -- == See Also
 --
--- 'CommandBufferInheritanceViewportScissorInfoNV',
--- 'PhysicalDeviceInheritedViewportScissorFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_linear_color_attachment - device extension
 --
--- == VK_NV_linear_color_attachment
+-- = VK_NV_linear_color_attachment
 --
 -- [__Name String__]
 --     @VK_NV_linear_color_attachment@
@@ -22,9 +22,13 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_KHR_format_feature_flags2
 --
 -- [__Contact__]
@@ -93,6 +97,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending
@@ -108,7 +114,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceLinearColorAttachmentFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_linear_color_attachment - device extension
 --
--- == VK_NV_linear_color_attachment
+-- = VK_NV_linear_color_attachment
 --
 -- [__Name String__]
 --     @VK_NV_linear_color_attachment@
@@ -22,9 +22,13 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_KHR_format_feature_flags2
 --
 -- [__Contact__]
@@ -93,6 +97,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending
@@ -108,7 +114,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceLinearColorAttachmentFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_low_latency - device extension
 --
--- == VK_NV_low_latency
+-- = VK_NV_low_latency
 --
 -- [__Name String__]
 --     @VK_NV_low_latency@
@@ -75,7 +75,7 @@
 --
 -- == See Also
 --
--- 'QueryLowLatencySupportNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_low_latency - device extension
 --
--- == VK_NV_low_latency
+-- = VK_NV_low_latency
 --
 -- [__Name String__]
 --     @VK_NV_low_latency@
@@ -75,7 +75,7 @@
 --
 -- == See Also
 --
--- 'QueryLowLatencySupportNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_NV_low_latency2.hs b/src/Vulkan/Extensions/VK_NV_low_latency2.hs
--- a/src/Vulkan/Extensions/VK_NV_low_latency2.hs
+++ b/src/Vulkan/Extensions/VK_NV_low_latency2.hs
@@ -3,7 +3,7 @@
 --
 -- VK_NV_low_latency2 - device extension
 --
--- == VK_NV_low_latency2
+-- = VK_NV_low_latency2
 --
 -- [__Name String__]
 --     @VK_NV_low_latency2@
@@ -21,7 +21,7 @@
 --     Not ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Version 1.2>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphore VK_KHR_timeline_semaphore>
 --
@@ -156,13 +156,7 @@
 --
 -- == See Also
 --
--- 'GetLatencyMarkerInfoNV', 'LatencyMarkerNV', 'LatencySleepInfoNV',
--- 'LatencySleepModeInfoNV', 'LatencySubmissionPresentIdNV',
--- 'LatencySurfaceCapabilitiesNV', 'LatencyTimingsFrameReportNV',
--- 'OutOfBandQueueTypeInfoNV', 'OutOfBandQueueTypeNV',
--- 'SetLatencyMarkerInfoNV', 'SwapchainLatencyCreateInfoNV',
--- 'getLatencyTimingsNV', 'latencySleepNV', 'queueNotifyOutOfBandNV',
--- 'setLatencyMarkerNV', 'setLatencySleepModeNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -374,9 +368,9 @@
 -- with @pSleepInfo->signalSemaphore@ to delay host CPU work. CPU work
 -- refers to application work done before presenting which includes but is
 -- not limited to: input sampling, simulation, command buffer recording,
--- command buffer submission, and present submission. It is recommended to
--- call this function before input sampling. When using this function, it
--- /should/ be called exactly once between presents.
+-- command buffer submission, and present submission. Applications /should/
+-- call this function before input sampling, and exactly once between
+-- presents.
 --
 -- == Return Codes
 --
@@ -385,8 +379,7 @@
 --     -   '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_UNKNOWN'
+--     None
 --
 -- = See Also
 --
@@ -422,11 +415,11 @@
     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'
+  _ <- lift $ traceAroundEvent "vkLatencySleepNV" (vkLatencySleepNV'
                                                      (deviceHandle (device))
                                                      (swapchain)
                                                      pSleepInfo)
-  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pure $ ()
 
 
 foreign import ccall
@@ -600,7 +593,7 @@
 --
 -- = Description
 --
--- If @lowLatencyMode@ is set to 'Vulkan.Core10.FundamentalTypes.FALSE',
+-- If @lowLatencyMode@ is '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.
@@ -620,7 +613,9 @@
     -- performance to provide additional latency savings at a cost of increased
     -- power consumption.
     lowLatencyBoost :: Bool
-  , -- No documentation found for Nested "VkLatencySleepModeInfoNV" "minimumIntervalUs"
+  , -- | @minimumIntervalUs@ is the microseconds between
+    -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' calls for a given
+    -- swapchain that 'latencySleepNV' will enforce.
     minimumIntervalUs :: Word32
   }
   deriving (Typeable, Eq)
@@ -752,7 +747,11 @@
 -- 'LatencyMarkerNV', 'Vulkan.Core10.Enums.StructureType.StructureType',
 -- 'setLatencyMarkerNV'
 data SetLatencyMarkerInfoNV = SetLatencyMarkerInfoNV
-  { -- No documentation found for Nested "VkSetLatencyMarkerInfoNV" "presentID"
+  { -- | @presentID@ is an application provided value that is used to associate
+    -- the timestamp with a
+    -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' command using
+    -- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR'::@pPresentIds@ for a
+    -- given present.
     presentID :: Word64
   , -- | @marker@ is the type of timestamp to be recorded.
     --
@@ -809,8 +808,8 @@
 --
 -- If @pTimings@ is @NULL@ then the maximum number of queryable frame data
 -- is returned in @timingCount@. Otherwise, @timingCount@ /must/ be set by
--- the user to the number of elements in the @pTimings@ array, and on
--- return the variable is overwritten with the number of values actually
+-- the application to the number of elements in the @pTimings@ array, and
+-- on return the variable is overwritten with the number of values actually
 -- written to @pTimings@. The elements of @pTimings@ are arranged in the
 -- order they were requested in, with the oldest data in the first entry.
 --
@@ -830,8 +829,8 @@
 -- 'LatencyTimingsFrameReportNV',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'getLatencyTimingsNV'
 data GetLatencyMarkerInfoNV = GetLatencyMarkerInfoNV
-  { -- | @timingCount@ is an integer related to the number of of previous frames
-    -- of latency data available or queried, as described below.
+  { -- | @timingCount@ is an integer related to the number of previous frames of
+    -- latency data available or queried, as described below.
     timingCount :: Word32
   , -- | @pTimings@ is either @NULL@ or a pointer to an array of
     -- 'LatencyTimingsFrameReportNV' structures.
@@ -892,7 +891,11 @@
 -- 'GetLatencyMarkerInfoNV',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data LatencyTimingsFrameReportNV = LatencyTimingsFrameReportNV
-  { -- No documentation found for Nested "VkLatencyTimingsFrameReportNV" "presentID"
+  { -- | @presentID@ is the application provided value that is used to associate
+    -- the timestamp with a
+    -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' command using
+    -- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR'::@pPresentIds@ for a
+    -- given present.
     presentID :: Word64
   , -- No documentation found for Nested "VkLatencyTimingsFrameReportNV" "inputSampleTimeUs"
     inputSampleTimeUs :: Word64
@@ -1099,10 +1102,10 @@
 -- = 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.
+-- to be associated with other submissions in a given present. To associate
+-- a submission with @presentID@ for low latency mode, the @pNext@ chain of
+-- 'Vulkan.Core10.Queue.queueSubmit' /must/ include a
+-- 'LatencySubmissionPresentIdNV' structure.
 --
 -- == Valid Usage (Implicit)
 --
@@ -1111,7 +1114,10 @@
 -- <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@ is used to associate the 'Vulkan.Core10.Queue.queueSubmit'
+    -- with the presentId used for a given
+    -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' via
+    -- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR'::@pPresentIds@.
     presentID :: Word64 }
   deriving (Typeable, Eq)
 #if defined(GENERIC_INSTANCES)
@@ -1162,7 +1168,9 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data SwapchainLatencyCreateInfoNV = SwapchainLatencyCreateInfoNV
-  { -- No documentation found for Nested "VkSwapchainLatencyCreateInfoNV" "latencyModeEnable"
+  { -- | @latencyModeEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE' if the
+    -- created swapchain will utilize low latency mode,
+    -- 'Vulkan.Core10.FundamentalTypes.FALSE' otherwise.
     latencyModeEnable :: Bool }
   deriving (Typeable, Eq)
 #if defined(GENERIC_INSTANCES)
@@ -1208,9 +1216,9 @@
 --
 -- 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
+-- Otherwise, @presentModeCount@ /must/ be set by the application 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@.
@@ -1439,11 +1447,11 @@
 newtype OutOfBandQueueTypeNV = OutOfBandQueueTypeNV Int32
   deriving newtype (Eq, Ord, Storable, Zero)
 
--- | 'OUT_OF_BAND_QUEUE_TYPE_RENDER_NV' indicates that work will be submitted
+-- | 'OUT_OF_BAND_QUEUE_TYPE_RENDER_NV' specifies 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
+-- | 'OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV' specifies that this queue will be
 -- presented from.
 pattern OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = OutOfBandQueueTypeNV 1
 
diff --git a/src/Vulkan/Extensions/VK_NV_low_latency2.hs-boot b/src/Vulkan/Extensions/VK_NV_low_latency2.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_low_latency2.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_low_latency2.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_NV_low_latency2 - device extension
 --
--- == VK_NV_low_latency2
+-- = VK_NV_low_latency2
 --
 -- [__Name String__]
 --     @VK_NV_low_latency2@
@@ -21,7 +21,7 @@
 --     Not ratified
 --
 -- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Version 1.2>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphore VK_KHR_timeline_semaphore>
 --
@@ -156,13 +156,7 @@
 --
 -- == See Also
 --
--- 'GetLatencyMarkerInfoNV', 'LatencyMarkerNV', 'LatencySleepInfoNV',
--- 'LatencySleepModeInfoNV', 'LatencySubmissionPresentIdNV',
--- 'LatencySurfaceCapabilitiesNV', 'LatencyTimingsFrameReportNV',
--- 'OutOfBandQueueTypeInfoNV', 'OutOfBandQueueTypeNV',
--- 'SetLatencyMarkerInfoNV', 'SwapchainLatencyCreateInfoNV',
--- 'getLatencyTimingsNV', 'latencySleepNV', 'queueNotifyOutOfBandNV',
--- 'setLatencyMarkerNV', 'setLatencySleepModeNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_memory_decompression - device extension
 --
--- == VK_NV_memory_decompression
+-- = VK_NV_memory_decompression
 --
 -- [__Name String__]
 --     @VK_NV_memory_decompression@
@@ -21,9 +21,16 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__Contact__]
 --
@@ -99,11 +106,7 @@
 --
 -- == See Also
 --
--- 'DecompressMemoryRegionNV', 'MemoryDecompressionMethodFlagBitsNV',
--- 'MemoryDecompressionMethodFlagsNV',
--- 'PhysicalDeviceMemoryDecompressionFeaturesNV',
--- 'PhysicalDeviceMemoryDecompressionPropertiesNV',
--- 'cmdDecompressMemoryIndirectCountNV', 'cmdDecompressMemoryNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -695,7 +698,8 @@
 --
 -- = See Also
 --
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_memory_decompression VK_NV_memory_decompression>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_memory_decompression VK_NV_memory_decompression>,
+-- 'MemoryDecompressionMethodFlagsNV'
 newtype MemoryDecompressionMethodFlagBitsNV = MemoryDecompressionMethodFlagBitsNV Flags64
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_memory_decompression - device extension
 --
--- == VK_NV_memory_decompression
+-- = VK_NV_memory_decompression
 --
 -- [__Name String__]
 --     @VK_NV_memory_decompression@
@@ -21,9 +21,16 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan Version 1.2>
 --
 -- [__Contact__]
 --
@@ -99,11 +106,7 @@
 --
 -- == See Also
 --
--- 'DecompressMemoryRegionNV', 'MemoryDecompressionMethodFlagBitsNV',
--- 'MemoryDecompressionMethodFlagsNV',
--- 'PhysicalDeviceMemoryDecompressionFeaturesNV',
--- 'PhysicalDeviceMemoryDecompressionPropertiesNV',
--- 'cmdDecompressMemoryIndirectCountNV', 'cmdDecompressMemoryNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,11630 +3,11420 @@
 --
 -- VK_NV_mesh_shader - device extension
 --
--- == VK_NV_mesh_shader
---
--- [__Name String__]
---     @VK_NV_mesh_shader@
---
--- [__Extension Type__]
---     Device extension
---
--- [__Registered Extension Number__]
---     203
---
--- [__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>
---
--- [__SPIR-V Dependencies__]
---
---     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_mesh_shader.html SPV_NV_mesh_shader>
---
--- [__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 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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent 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.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_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',
---     '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_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',
---     '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_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',
---     '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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 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'
---     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-rasterizerDiscardEnable-09416# If the
---     @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# 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.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-rasterizerDiscardEnable-09419# 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, 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-None-09548# If the current render pass
---     was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-09549# If the current render pass
---     was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent 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.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_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',
---     '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_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',
---     '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_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',
---     '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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 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', 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 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', 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 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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 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'
---     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-rasterizerDiscardEnable-09416# If
---     the @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# 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.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-rasterizerDiscardEnable-09419# 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, 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a
---     shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-None-09548# If the current render
---     pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09549# If the current render
---     pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
---     current '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' used to create the current
---     'Vulkan.Core10.Handles.Pipeline' or the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current '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 as described by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
---     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-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-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-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.Core13.Promoted_From_VK_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.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 any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.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, and the most recent 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.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_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',
---     '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_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',
---     '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_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',
---     '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.Core13.Promoted_From_VK_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.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 the
---     @VK_NV_clip_space_w_scaling@ 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.cmdSetViewportWScalingEnableNV'
---     in the current command buffer set @viewportWScalingEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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 a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.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
---     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', 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 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', 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 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
---     the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
---     feature is enabled, and 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 most recent call to
---     'Vulkan.Core13.Promoted_From_VK_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.cmdSetLogicOpEnableEXT'
---     set @logicOpEnable@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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 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 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 following is enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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 following is
---     enabled:
---
---     -   the @VK_AMD_mixed_attachment_samples@ extension
---
---     -   the @VK_NV_framebuffer_mixed_samples@ extension
---
---     -   the
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---         feature
---
---     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
---     <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',
---     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-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-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-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', 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.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 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 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 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'
---     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-rasterizerDiscardEnable-09416#
---     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     and
---     '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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR_line_rasterization@ or @VK_EXT_line_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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_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.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_KHR_line_rasterization@ or @VK_EXT_line_rasterization@ extension
---     is enabled, and 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, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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_KHR'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08672# If the
---     @VK_KHR_line_rasterization@ or @VK_EXT_line_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.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.Core13.Promoted_From_VK_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.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-rasterizerDiscardEnable-09417#
---     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, 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-rasterizerDiscardEnable-09418#
---     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.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-rasterizerDiscardEnable-09419#
---     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, 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 a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, or 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 a shader object is bound to any graphics stage or 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-rasterizerDiscardEnable-09420#
---     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', 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-viewportCount-09421# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
---     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
---     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 the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
---     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_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-None-09548# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, the value
---     of each element of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
---     set by
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
---     /must/ match the value set for the corresponding element in the
---     currently bound pipeline
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09549# If the current
---     render pass was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and there is no shader object bound to any graphics stage, input
---     attachment index mappings in the currently bound pipeline /must/
---     match those set for the current render pass instance via
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708# If @buffer@ is
---     non-sparse then it /must/ be bound completely and contiguously to a
---     single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709# @buffer@
---     /must/ have been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-offset-02710# @offset@
---     /must/ be a multiple of @4@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711#
---     @commandBuffer@ /must/ not be a protected command buffer
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714# If
---     @countBuffer@ is non-sparse then it /must/ be bound completely and
---     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715#
---     @countBuffer@ /must/ have been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716#
---     @countBufferOffset@ /must/ be a multiple of @4@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717# The count
---     stored in @countBuffer@ /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129#
---     (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or
---     equal to the size of @countBuffer@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-stride-02182# @stride@
---     /must/ be a multiple of @4@ and /must/ be greater than or equal to
---     @sizeof@('DrawMeshTasksIndirectCommandNV')
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183# If
---     @maxDrawCount@ is greater than or equal to @1@, (@stride@ ×
---     (@maxDrawCount@ - 1) + @offset@ +
---     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or
---     equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02191# If the
---     count stored in @countBuffer@ is equal to @1@, (@offset@ +
---     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or
---     equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02192# If the
---     count stored in @countBuffer@ is greater than @1@, (@stride@ ×
---     (@drawCount@ - 1) + @offset@ +
---     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or
---     equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082# 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-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter# @buffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameter#
---     @countBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer'
---     handle
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-renderpass# This command
---     /must/ only be called inside of a render pass instance
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-videocoding# This command
---     /must/ only be called outside of a video coding scope
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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_NV_mesh_shader VK_NV_mesh_shader>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdDrawMeshTasksIndirectCountNV :: 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 ()
-cmdDrawMeshTasksIndirectCountNV commandBuffer
-                                  buffer
-                                  offset
-                                  countBuffer
-                                  countBufferOffset
-                                  maxDrawCount
-                                  stride = liftIO $ do
-  let vkCmdDrawMeshTasksIndirectCountNVPtr = pVkCmdDrawMeshTasksIndirectCountNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDrawMeshTasksIndirectCountNVPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectCountNV is null" Nothing Nothing
-  let vkCmdDrawMeshTasksIndirectCountNV' = mkVkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNVPtr
-  traceAroundEvent "vkCmdDrawMeshTasksIndirectCountNV" (vkCmdDrawMeshTasksIndirectCountNV'
-                                                          (commandBufferHandle (commandBuffer))
-                                                          (buffer)
-                                                          (offset)
-                                                          (countBuffer)
-                                                          (countBufferOffset)
-                                                          (maxDrawCount)
-                                                          (stride))
-  pure $ ()
-
-
--- No documentation found for TopLevel "VK_SHADER_STAGE_TASK_BIT_NV"
-pattern SHADER_STAGE_TASK_BIT_NV = SHADER_STAGE_TASK_BIT_EXT
-
-
--- No documentation found for TopLevel "VK_SHADER_STAGE_MESH_BIT_NV"
-pattern SHADER_STAGE_MESH_BIT_NV = SHADER_STAGE_MESH_BIT_EXT
-
-
--- No documentation found for TopLevel "VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"
-pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV = PIPELINE_STAGE_TASK_SHADER_BIT_EXT
-
-
--- No documentation found for TopLevel "VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"
-pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV = PIPELINE_STAGE_MESH_SHADER_BIT_EXT
-
-
--- | VkPhysicalDeviceMeshShaderFeaturesNV - Structure describing mesh shading
--- features that can be supported by an implementation
---
--- = Members
---
--- This structure describes the following features:
---
--- = Description
---
--- If the 'PhysicalDeviceMeshShaderFeaturesNV' 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. 'PhysicalDeviceMeshShaderFeaturesNV' /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_mesh_shader VK_NV_mesh_shader>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PhysicalDeviceMeshShaderFeaturesNV = PhysicalDeviceMeshShaderFeaturesNV
-  { -- | @taskShader@ specifies whether task shaders are supported. If this
-    -- feature is not enabled, the 'SHADER_STAGE_TASK_BIT_NV' and
-    -- 'PIPELINE_STAGE_TASK_SHADER_BIT_NV' enum values /must/ not be used.
-    taskShader :: Bool
-  , -- | @meshShader@ specifies whether mesh shaders are supported. If this
-    -- feature is not enabled, the 'SHADER_STAGE_MESH_BIT_NV' and
-    -- 'PIPELINE_STAGE_MESH_SHADER_BIT_NV' enum values /must/ not be used.
-    meshShader :: Bool
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceMeshShaderFeaturesNV)
-#endif
-deriving instance Show PhysicalDeviceMeshShaderFeaturesNV
-
-instance ToCStruct PhysicalDeviceMeshShaderFeaturesNV where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceMeshShaderFeaturesNV{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (taskShader))
-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (meshShader))
-    f
-  cStructSize = 24
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_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))
-    f
-
-instance FromCStruct PhysicalDeviceMeshShaderFeaturesNV where
-  peekCStruct p = do
-    taskShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
-    meshShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
-    pure $ PhysicalDeviceMeshShaderFeaturesNV
-             (bool32ToBool taskShader) (bool32ToBool meshShader)
-
-instance Storable PhysicalDeviceMeshShaderFeaturesNV where
-  sizeOf ~_ = 24
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PhysicalDeviceMeshShaderFeaturesNV where
-  zero = PhysicalDeviceMeshShaderFeaturesNV
-           zero
-           zero
-
-
--- | VkPhysicalDeviceMeshShaderPropertiesNV - Structure describing mesh
--- shading properties
---
--- = Description
---
--- If the 'PhysicalDeviceMeshShaderPropertiesNV' 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_mesh_shader VK_NV_mesh_shader>,
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PhysicalDeviceMeshShaderPropertiesNV = PhysicalDeviceMeshShaderPropertiesNV
-  { -- | @maxDrawMeshTasksCount@ is the maximum number of local workgroups that
-    -- /can/ be launched by a single draw mesh tasks command. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-mesh-shading>.
-    maxDrawMeshTasksCount :: Word32
-  , -- | @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
-  , -- | @maxTaskWorkGroupSize@[3] is the maximum size of a local task workgroup.
-    -- 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)
-  , -- | @maxTaskTotalMemorySize@ is the maximum number of bytes that the task
-    -- shader can use in total for shared and output memory combined.
-    maxTaskTotalMemorySize :: Word32
-  , -- | @maxTaskOutputCount@ is the maximum number of output tasks a single task
-    -- shader workgroup can emit.
-    maxTaskOutputCount :: Word32
-  , -- | @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
-  , -- | @maxMeshWorkGroupSize@[3] is the maximum size of a local mesh workgroup.
-    -- 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)
-  , -- | @maxMeshTotalMemorySize@ is the maximum number of bytes that the mesh
-    -- shader can use in total for shared and output memory combined.
-    maxMeshTotalMemorySize :: Word32
-  , -- | @maxMeshOutputVertices@ is the maximum number of vertices a mesh shader
-    -- output can store.
-    maxMeshOutputVertices :: Word32
-  , -- | @maxMeshOutputPrimitives@ is the maximum number of primitives a mesh
-    -- shader output can store.
-    maxMeshOutputPrimitives :: Word32
-  , -- | @maxMeshMultiviewViewCount@ is the maximum number of multiview views a
-    -- mesh shader can use.
-    maxMeshMultiviewViewCount :: Word32
-  , -- | @meshOutputPerVertexGranularity@ is the granularity with which mesh
-    -- vertex outputs are allocated. The value can be used to compute the
-    -- memory size used by the mesh shader, which must be less than or equal to
-    -- @maxMeshTotalMemorySize@.
-    meshOutputPerVertexGranularity :: Word32
-  , -- | @meshOutputPerPrimitiveGranularity@ is the granularity with which mesh
-    -- outputs qualified as per-primitive are allocated. The value can be used
-    -- to compute the memory size used by the mesh shader, which must be less
+-- = VK_NV_mesh_shader
+--
+-- [__Name String__]
+--     @VK_NV_mesh_shader@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     203
+--
+-- [__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 Vulkan Version 1.1>
+--
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_EXT_device_generated_commands
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_mesh_shader.html SPV_NV_mesh_shader>
+--
+-- [__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 provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/main/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'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectCommandsTokenTypeEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT'
+--
+--     -   'Vulkan.Extensions.VK_EXT_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT'
+--
+-- == 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
+--
+-- No cross-references are available
+--
+-- == 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
+                                            , IndirectCommandsTokenTypeEXT(..)
+                                            ) 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))
+import Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectCommandsTokenTypeEXT(..))
+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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of resources
+--     that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified
+--     statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with type
+--     equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595# Input
+--     attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-pDepthInputAttachmentIndex-09596# Input
+--     attachment views accessed in a dynamic render pass via a shader
+--     object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-InputAttachmentIndex-09597# If an input
+--     attachment view accessed in a dynamic render pass via a shader
+--     object has an @InputAttachmentIndex@, the @InputAttachmentIndex@
+--     /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08618# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07834# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07836# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07837# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07838# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07839# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07840# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07841# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07843# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07844# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07845# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07847# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07848# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-viewportCount-03417# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-scissorCount-03418# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-viewportCount-03419# If a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-04876# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-04877# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-logicOp-04878# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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 bound
+--     pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07621# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07622# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07623# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object is bound
+--     to any graphics stage or a graphics pipeline is bound which was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09416# If the
+--     @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# If a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419# 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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-coverageModulationTableEnable-07488# If a
+--     shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-None-09548# If the current render pass
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09549# If the current render pass
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09642# If the current render pass
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09643# If the bound graphics
+--     pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-stage-06480# The bound graphics pipeline
+--     /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-unnormalizedCoordinates-09635# If
+--     a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-unnormalizedCoordinates-09636# If
+--     a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array of
+--     resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor with
+--     type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595#
+--     Input attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pDepthInputAttachmentIndex-09596#
+--     Input attachment views accessed in a dynamic render pass via a
+--     shader object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-InputAttachmentIndex-09597# If an
+--     input attachment view accessed in a dynamic render pass via a shader
+--     object has an @InputAttachmentIndex@, the @InputAttachmentIndex@
+--     /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08618# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07834# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07836# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07837# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07838# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07839# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07840# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07841# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07843# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07844# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07845# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07847# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07848# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-04876# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-04877# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07621# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07622# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07623# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09416# If
+--     the @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417# 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, 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-rasterizerDiscardEnable-09418# If
+--     a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419# 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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-coverageModulationTableEnable-07488#
+--     If a shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420# 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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-None-09548# If the current render
+--     pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09549# If the current render
+--     pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09642# If the current render
+--     pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09643# If the bound graphics
+--     pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-stage-06480# The bound graphics
+--     pipeline /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-mipmapMode-04770# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-unnormalizedCoordinates-09635#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-unnormalizedCoordinates-09636#
+--     If a 'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
+-- -   #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-cubicRangeClamp 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-selectableCubicWeights 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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current '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-10068# For each array
+--     of resources that is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
+-- -   #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' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current '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 as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     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-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 specified statically 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-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature 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-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#spirvenv-image-dimensions ???>
+--
+-- -   #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-None-09600# If a descriptor
+--     with type equal to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
+-- -   #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 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-pDepthInputAttachmentIndex-09595#
+--     Input attachment views accessed in a dynamic render pass with a
+--     @InputAttachmentIndex@ referenced by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR',
+--     or no @InputAttachmentIndex@ if
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are @NULL@, /must/ be created with a
+--     'Vulkan.Core10.Handles.ImageView' that is compatible with the
+--     corresponding color, depth, or stencil attachment in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthInputAttachmentIndex-09596#
+--     Input attachment views accessed in a dynamic render pass via a
+--     shader object /must/ have an @InputAttachmentIndex@ if both
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pDepthInputAttachmentIndex@
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR':@pStencilInputAttachmentIndex@
+--     are non-@NULL@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-InputAttachmentIndex-09597#
+--     If an input attachment view accessed in a dynamic render pass via a
+--     shader object has an @InputAttachmentIndex@, the
+--     @InputAttachmentIndex@ /must/ match an index in
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 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 bound graphics pipeline or
+--
+--         -   the 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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.Core13.Promoted_From_VK_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.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08618# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, and the most recent 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.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07834# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07836# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthBoundsTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/
+--     have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07837# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07838# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07839# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of and @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-07634# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666# If the
+--     @VK_EXT_sample_locations@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07840# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07841# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07843# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07844# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07845# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07846# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07847# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07848# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stencilTestEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic state enabled, and the state is not inherited, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419# If a
+--     shader object is bound to any graphics stage or a graphics pipeline
+--     is bound which 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, and the state is not inherited, then 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
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08636# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @viewportWScalingEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-shadingRateImage-09233# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV'
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09234# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08637# 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 or a graphics pipeline is bound which 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 state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @shadingRateImageEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07879# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #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 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 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 following is enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the 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 following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     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 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
+--     <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',
+--     the 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 an @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 bound graphics pipeline
+--
+-- -   #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 an @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 bound pipeline equal to
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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 an @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 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-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 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 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 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 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 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 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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, 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07881# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, a shader object is
+--     bound to any graphics stage or a graphics pipeline is bound which
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @discardRectangleEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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', 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.cmdSetDiscardRectangleEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 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 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 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 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 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 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_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created with a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.AttachmentSampleCountInfoNV'
+--     used to create the 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07286#
+--     If the bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 bound pipeline was created without a
+--     'Vulkan.Extensions.VK_AMD_mixed_attachment_samples.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.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 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 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 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07620# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07621# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07622# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07623# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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-07624# If a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07625# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07626# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08658# 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'
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07630# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07631# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07632# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @conservativeRasterizationMode@ is
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07633# 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 or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--     dynamic state, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09416#
+--     If the @VK_EXT_blend_operation_advanced@ 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 at least one of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07636# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08666# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08667# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08668# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08669# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08670# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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_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.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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08671# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled, and 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, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07849# If any of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>
+--     features are enabled and a shader object is bound to any graphics
+--     stage, or a bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_KHR'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_KHR_line_rasterization.cmdSetLineStippleKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07639# 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 or a graphics pipeline is bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClampControl depthClampControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @depthClampEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_depth_clamp_control.cmdSetDepthClampRangeEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07640# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07641# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage or a graphics pipeline is bound which
+--     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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07642# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07643# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07644# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07645# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationMode@ is 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 and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07646# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, a shader
+--     object is bound to any graphics stage or a graphics pipeline is
+--     bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--     dynamic state enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @coverageModulationTableEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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, a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07648# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07649# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, a shader object is bound to any graphics stage
+--     or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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 the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature is not 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-rasterizerDiscardEnable-09417#
+--     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, 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-rasterizerDiscardEnable-09418#
+--     If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and both the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' and there are color
+--     attachments bound, 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-rasterizerDiscardEnable-09419#
+--     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, 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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 a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, or 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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     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, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @sampleLocationsEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageModulationTableEnable-07488#
+--     If a shader object is bound to any graphics stage or 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 bound
+--     pipeline, 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-rasterizerDiscardEnable-09420#
+--     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', 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-viewportCount-09421# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR',
+--     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_KHR_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_KHR',
+--     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 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 a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage or a graphics pipeline is bound which was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state enabled, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-current-value current value>
+--     of @rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called and not subsequently
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dynamic-state-lifetime invalidated>
+--     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-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 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-None-09548# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, the value
+--     of each element of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingAttachmentLocationInfoKHR'::@pColorAttachmentLocations@
+--     set by
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.cmdSetRenderingAttachmentLocationsKHR'
+--     /must/ match the value set for the corresponding element in the
+--     bound pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09549# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and there is no shader object bound to any graphics stage, input
+--     attachment index mappings in the bound pipeline /must/ match those
+--     set for the current render pass instance via
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering_local_read.RenderingInputAttachmentIndexInfoKHR'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09642# If the current
+--     render pass was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag, the bound graphics pipeline /must/ have been created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09643# If the bound
+--     graphics pipeline was created with
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT',
+--     the current render pass /must/ have begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with the
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT'
+--     flag
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-06480# The bound
+--     graphics pipeline /must/ not have been created with the
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
+--     member of any 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708# If @buffer@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709# @buffer@
+--     /must/ have been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-offset-02710# @offset@
+--     /must/ be a multiple of @4@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711#
+--     @commandBuffer@ /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714# If
+--     @countBuffer@ is non-sparse then it /must/ be bound completely and
+--     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715#
+--     @countBuffer@ /must/ have been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716#
+--     @countBufferOffset@ /must/ be a multiple of @4@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717# The count
+--     stored in @countBuffer@ /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129#
+--     (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or
+--     equal to the size of @countBuffer@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04445# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCount drawIndirectCount>
+--     feature is not enabled this function /must/ not be used
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182# @stride@
+--     /must/ be a multiple of @4@ and /must/ be greater than or equal to
+--     @sizeof@('DrawMeshTasksIndirectCommandNV')
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183# If
+--     @maxDrawCount@ is greater than or equal to @1@, (@stride@ ×
+--     (@maxDrawCount@ - 1) + @offset@ +
+--     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or
+--     equal to the size of @buffer@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082# 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-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter# @buffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameter#
+--     @countBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer'
+--     handle
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-renderpass# This command
+--     /must/ only be called inside of a render pass instance
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-videocoding# This command
+--     /must/ only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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_NV_mesh_shader VK_NV_mesh_shader>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdDrawMeshTasksIndirectCountNV :: 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 ()
+cmdDrawMeshTasksIndirectCountNV commandBuffer
+                                  buffer
+                                  offset
+                                  countBuffer
+                                  countBufferOffset
+                                  maxDrawCount
+                                  stride = liftIO $ do
+  let vkCmdDrawMeshTasksIndirectCountNVPtr = pVkCmdDrawMeshTasksIndirectCountNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDrawMeshTasksIndirectCountNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectCountNV is null" Nothing Nothing
+  let vkCmdDrawMeshTasksIndirectCountNV' = mkVkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNVPtr
+  traceAroundEvent "vkCmdDrawMeshTasksIndirectCountNV" (vkCmdDrawMeshTasksIndirectCountNV'
+                                                          (commandBufferHandle (commandBuffer))
+                                                          (buffer)
+                                                          (offset)
+                                                          (countBuffer)
+                                                          (countBufferOffset)
+                                                          (maxDrawCount)
+                                                          (stride))
+  pure $ ()
+
+
+-- No documentation found for TopLevel "VK_SHADER_STAGE_TASK_BIT_NV"
+pattern SHADER_STAGE_TASK_BIT_NV = SHADER_STAGE_TASK_BIT_EXT
+
+
+-- No documentation found for TopLevel "VK_SHADER_STAGE_MESH_BIT_NV"
+pattern SHADER_STAGE_MESH_BIT_NV = SHADER_STAGE_MESH_BIT_EXT
+
+
+-- No documentation found for TopLevel "VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"
+pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV = PIPELINE_STAGE_TASK_SHADER_BIT_EXT
+
+
+-- No documentation found for TopLevel "VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"
+pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV = PIPELINE_STAGE_MESH_SHADER_BIT_EXT
+
+
+-- | VkPhysicalDeviceMeshShaderFeaturesNV - Structure describing mesh shading
+-- features that can be supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceMeshShaderFeaturesNV' 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. 'PhysicalDeviceMeshShaderFeaturesNV' /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_mesh_shader VK_NV_mesh_shader>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceMeshShaderFeaturesNV = PhysicalDeviceMeshShaderFeaturesNV
+  { -- | #features-taskShaderNV# @taskShader@ specifies whether task shaders are
+    -- supported. If this feature is not enabled, the
+    -- 'SHADER_STAGE_TASK_BIT_NV' and 'PIPELINE_STAGE_TASK_SHADER_BIT_NV' enum
+    -- values /must/ not be used.
+    taskShader :: Bool
+  , -- | #features-meshShaderNV# @meshShader@ specifies whether mesh shaders are
+    -- supported. If this feature is not enabled, the
+    -- 'SHADER_STAGE_MESH_BIT_NV' and 'PIPELINE_STAGE_MESH_SHADER_BIT_NV' enum
+    -- values /must/ not be used.
+    meshShader :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceMeshShaderFeaturesNV)
+#endif
+deriving instance Show PhysicalDeviceMeshShaderFeaturesNV
+
+instance ToCStruct PhysicalDeviceMeshShaderFeaturesNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceMeshShaderFeaturesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (taskShader))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (meshShader))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_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))
+    f
+
+instance FromCStruct PhysicalDeviceMeshShaderFeaturesNV where
+  peekCStruct p = do
+    taskShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    meshShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pure $ PhysicalDeviceMeshShaderFeaturesNV
+             (bool32ToBool taskShader) (bool32ToBool meshShader)
+
+instance Storable PhysicalDeviceMeshShaderFeaturesNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceMeshShaderFeaturesNV where
+  zero = PhysicalDeviceMeshShaderFeaturesNV
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceMeshShaderPropertiesNV - Structure describing mesh
+-- shading properties
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceMeshShaderPropertiesNV' 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_mesh_shader VK_NV_mesh_shader>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceMeshShaderPropertiesNV = PhysicalDeviceMeshShaderPropertiesNV
+  { -- | @maxDrawMeshTasksCount@ is the maximum number of local workgroups that
+    -- /can/ be launched by a single draw mesh tasks command. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-mesh-shading>.
+    maxDrawMeshTasksCount :: Word32
+  , -- | @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
+  , -- | @maxTaskWorkGroupSize@[3] is the maximum size of a local task workgroup.
+    -- 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)
+  , -- | @maxTaskTotalMemorySize@ is the maximum number of bytes that the task
+    -- shader can use in total for shared and output memory combined.
+    maxTaskTotalMemorySize :: Word32
+  , -- | @maxTaskOutputCount@ is the maximum number of output tasks a single task
+    -- shader workgroup can emit.
+    maxTaskOutputCount :: Word32
+  , -- | @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
+  , -- | @maxMeshWorkGroupSize@[3] is the maximum size of a local mesh workgroup.
+    -- 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)
+  , -- | @maxMeshTotalMemorySize@ is the maximum number of bytes that the mesh
+    -- shader can use in total for shared and output memory combined.
+    maxMeshTotalMemorySize :: Word32
+  , -- | @maxMeshOutputVertices@ is the maximum number of vertices a mesh shader
+    -- output can store.
+    maxMeshOutputVertices :: Word32
+  , -- | @maxMeshOutputPrimitives@ is the maximum number of primitives a mesh
+    -- shader output can store.
+    maxMeshOutputPrimitives :: Word32
+  , -- | @maxMeshMultiviewViewCount@ is the maximum number of multiview views a
+    -- mesh shader can use.
+    maxMeshMultiviewViewCount :: Word32
+  , -- | @meshOutputPerVertexGranularity@ is the granularity with which mesh
+    -- vertex outputs are allocated. The value can be used to compute the
+    -- memory size used by the mesh shader, which /must/ be less than or equal
+    -- to @maxMeshTotalMemorySize@.
+    meshOutputPerVertexGranularity :: Word32
+  , -- | @meshOutputPerPrimitiveGranularity@ is the granularity with which mesh
+    -- outputs qualified as per-primitive are allocated. The value can be used
+    -- to compute the memory size used by the mesh shader, which /must/ be less
     -- than or equal to @maxMeshTotalMemorySize@.
     meshOutputPerPrimitiveGranularity :: Word32
   }
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_mesh_shader - device extension
 --
--- == VK_NV_mesh_shader
+-- = VK_NV_mesh_shader
 --
 -- [__Name String__]
 --     @VK_NV_mesh_shader@
@@ -22,7 +22,13 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
+-- [__API Interactions__]
+--
+--     -   Interacts with VK_EXT_device_generated_commands
+--
 -- [__SPIR-V Dependencies__]
 --
 --     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_mesh_shader.html SPV_NV_mesh_shader>
@@ -40,7 +46,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_mesh_shader.txt GLSL_NV_mesh_shader>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_mesh_shader.txt GLSL_NV_mesh_shader>
 --
 -- [__Contributors__]
 --
@@ -124,6 +130,17 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_generated_commands VK_EXT_device_generated_commands>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_device_generated_commands.IndirectCommandsTokenTypeEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT'
+--
+--     -   'Vulkan.Extensions.VK_EXT_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT'
+--
 -- == New or Modified Built-In Variables
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-taskcount TaskCountNV>
@@ -245,10 +262,7 @@
 --
 -- == See Also
 --
--- 'DrawMeshTasksIndirectCommandNV', 'PhysicalDeviceMeshShaderFeaturesNV',
--- 'PhysicalDeviceMeshShaderPropertiesNV',
--- 'cmdDrawMeshTasksIndirectCountNV', 'cmdDrawMeshTasksIndirectNV',
--- 'cmdDrawMeshTasksNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_optical_flow - device extension
 --
--- == VK_NV_optical_flow
+-- = VK_NV_optical_flow
 --
 -- [__Name String__]
 --     @VK_NV_optical_flow@
@@ -21,11 +21,19 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
---     and
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -53,8 +61,6 @@
 -- This extension allows applications to estimate 2D displacement of pixels
 -- between two frames.
 --
--- Note
---
 -- This extension is designed to be used with upcoming NVIDIA Optical Flow
 -- SDK Version 5 which will be available on NVIDIA Developer webpage.
 --
@@ -141,8 +147,10 @@
 --
 -- -   Extending 'Vulkan.Core10.Enums.Format.Format':
 --
---     -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_S10_5_NV'
+--     -   'FORMAT_R16G16_S10_5_NV'
 --
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_SFIXED5_NV'
+--
 -- -   Extending
 --     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2':
 --
@@ -267,21 +275,7 @@
 --
 -- == See Also
 --
--- 'OpticalFlowExecuteFlagBitsNV', 'OpticalFlowExecuteFlagsNV',
--- 'OpticalFlowExecuteInfoNV', 'OpticalFlowGridSizeFlagBitsNV',
--- 'OpticalFlowGridSizeFlagsNV', 'OpticalFlowImageFormatInfoNV',
--- 'OpticalFlowImageFormatPropertiesNV', 'OpticalFlowPerformanceLevelNV',
--- 'OpticalFlowSessionBindingPointNV',
--- 'OpticalFlowSessionCreateFlagBitsNV', 'OpticalFlowSessionCreateFlagsNV',
--- 'OpticalFlowSessionCreateInfoNV',
--- 'OpticalFlowSessionCreatePrivateDataInfoNV',
--- 'Vulkan.Extensions.Handles.OpticalFlowSessionNV',
--- 'OpticalFlowUsageFlagBitsNV', 'OpticalFlowUsageFlagsNV',
--- 'PhysicalDeviceOpticalFlowFeaturesNV',
--- 'PhysicalDeviceOpticalFlowPropertiesNV',
--- 'bindOpticalFlowSessionImageNV', 'cmdOpticalFlowExecuteNV',
--- 'createOpticalFlowSessionNV', 'destroyOpticalFlowSessionNV',
--- 'getPhysicalDeviceOpticalFlowImageFormatsNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -296,6 +290,7 @@
                                              , destroyOpticalFlowSessionNV
                                              , bindOpticalFlowSessionImageNV
                                              , cmdOpticalFlowExecuteNV
+                                             , pattern FORMAT_R16G16_S10_5_NV
                                              , PhysicalDeviceOpticalFlowFeaturesNV(..)
                                              , PhysicalDeviceOpticalFlowPropertiesNV(..)
                                              , OpticalFlowImageFormatInfoNV(..)
@@ -454,6 +449,7 @@
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core10.Enums.Format (Format(FORMAT_R16G16_SFIXED5_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV))
@@ -477,17 +473,18 @@
 --
 -- If @pImageFormatProperties@ is @NULL@, then the number of optical flow
 -- properties supported for the given @physicalDevice@ is returned in
--- @pFormatCount@. Otherwise, @pFormatCount@ must point to a variable set
--- by the user to the number of elements in the @pImageFormatProperties@
--- array, and on return the variable is overwritten with the number of
--- values actually written to @pImageFormatProperties@. If the value of
--- @pFormatCount@ is less than the number of optical flow properties
--- supported, at most @pFormatCount@ values will be written to
--- @pImageFormatProperties@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE'
--- will be returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to
--- indicate that not all the available values were returned.
+-- @pFormatCount@. Otherwise, @pFormatCount@ /must/ point to a variable set
+-- by the application to the number of elements in the
+-- @pImageFormatProperties@ array, and on return the variable is
+-- overwritten with the number of values actually written to
+-- @pImageFormatProperties@. If the value of @pFormatCount@ is less than
+-- the number of optical flow properties supported, at most @pFormatCount@
+-- values will be written to @pImageFormatProperties@, and
+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of
+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the
+-- available values were returned.
 --
--- Before creating an image to be used as a optical flow frame, obtain the
+-- Before creating an image to be used as an optical flow frame, obtain the
 -- supported image creation parameters by querying with
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'
 -- and
@@ -537,8 +534,6 @@
 --
 --     -   'Vulkan.Core10.Enums.Result.ERROR_FORMAT_NOT_SUPPORTED'
 --
--- Note
---
 -- 'Vulkan.Core10.Enums.Format.FORMAT_B8G8R8A8_UNORM',
 -- 'Vulkan.Core10.Enums.Format.FORMAT_R8_UNORM' and
 -- 'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_420_UNORM' are
@@ -546,7 +541,7 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-usage optical usage>
 -- 'OPTICAL_FLOW_USAGE_INPUT_BIT_NV'.
 --
--- 'Vulkan.Core10.Enums.Format.FORMAT_R16G16_S10_5_NV' is initially
+-- 'Vulkan.Core10.Enums.Format.FORMAT_R16G16_SFIXED5_NV' is initially
 -- supported for images with
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-usage optical flow usage>
 -- 'OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV', 'OPTICAL_FLOW_USAGE_HINT_BIT_NV' and
@@ -949,6 +944,10 @@
   pure $ ()
 
 
+-- No documentation found for TopLevel "VK_FORMAT_R16G16_S10_5_NV"
+pattern FORMAT_R16G16_S10_5_NV = FORMAT_R16G16_SFIXED5_NV
+
+
 -- | VkPhysicalDeviceOpticalFlowFeaturesNV - Structure describing the optical
 -- flow features supported by the implementation
 --
@@ -1595,7 +1594,7 @@
            zero
 
 
--- | VkOpticalFlowExecuteInfoNV - Structure specifying parameters of a
+-- | VkOpticalFlowExecuteInfoNV - Structure specifying parameters of an
 -- optical flow vector calculation
 --
 -- == Valid Usage
@@ -1934,26 +1933,27 @@
 pattern OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = OpticalFlowSessionBindingPointNV 3
 
 -- | 'OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV' specifies the
--- binding point for output flow vectors of default forward flow calcution.
+-- binding point for output flow vectors of default forward flow
+-- calculation.
 pattern OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = OpticalFlowSessionBindingPointNV 4
 
 -- | 'OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV' specifies
 -- the binding point for the optional output flow vector map of optional
--- backward flow calcution.
+-- backward flow calculation.
 pattern OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = OpticalFlowSessionBindingPointNV 5
 
 -- | 'OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV' specifies the binding point
--- for the optional output cost map of default forward flow calcution.
+-- for the optional output cost map of default forward flow calculation.
 pattern OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = OpticalFlowSessionBindingPointNV 6
 
 -- | 'OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV' specifies the
 -- binding point for the optional output cost map of optional backward flow
--- calcution.
+-- calculation.
 pattern OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = OpticalFlowSessionBindingPointNV 7
 
 -- | 'OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV' specifies the
 -- binding point for the optional global flow value of default forward flow
--- calcution.
+-- calculation.
 pattern OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = OpticalFlowSessionBindingPointNV 8
 
 {-# COMPLETE
@@ -2126,7 +2126,7 @@
 
 type OpticalFlowExecuteFlagsNV = OpticalFlowExecuteFlagBitsNV
 
--- | VkOpticalFlowExecuteFlagBitsNV - Bits specifying flags for a optical
+-- | VkOpticalFlowExecuteFlagBitsNV - Bits specifying flags for an optical
 -- flow vector calculation
 --
 -- = See Also
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_optical_flow - device extension
 --
--- == VK_NV_optical_flow
+-- = VK_NV_optical_flow
 --
 -- [__Name String__]
 --     @VK_NV_optical_flow@
@@ -21,11 +21,19 @@
 --     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
+--              or
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
---     and
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -53,8 +61,6 @@
 -- This extension allows applications to estimate 2D displacement of pixels
 -- between two frames.
 --
--- Note
---
 -- This extension is designed to be used with upcoming NVIDIA Optical Flow
 -- SDK Version 5 which will be available on NVIDIA Developer webpage.
 --
@@ -141,8 +147,10 @@
 --
 -- -   Extending 'Vulkan.Core10.Enums.Format.Format':
 --
---     -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_S10_5_NV'
+--     -   'FORMAT_R16G16_S10_5_NV'
 --
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_SFIXED5_NV'
+--
 -- -   Extending
 --     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2':
 --
@@ -267,21 +275,7 @@
 --
 -- == See Also
 --
--- 'OpticalFlowExecuteFlagBitsNV', 'OpticalFlowExecuteFlagsNV',
--- 'OpticalFlowExecuteInfoNV', 'OpticalFlowGridSizeFlagBitsNV',
--- 'OpticalFlowGridSizeFlagsNV', 'OpticalFlowImageFormatInfoNV',
--- 'OpticalFlowImageFormatPropertiesNV', 'OpticalFlowPerformanceLevelNV',
--- 'OpticalFlowSessionBindingPointNV',
--- 'OpticalFlowSessionCreateFlagBitsNV', 'OpticalFlowSessionCreateFlagsNV',
--- 'OpticalFlowSessionCreateInfoNV',
--- 'OpticalFlowSessionCreatePrivateDataInfoNV',
--- 'Vulkan.Extensions.Handles.OpticalFlowSessionNV',
--- 'OpticalFlowUsageFlagBitsNV', 'OpticalFlowUsageFlagsNV',
--- 'PhysicalDeviceOpticalFlowFeaturesNV',
--- 'PhysicalDeviceOpticalFlowPropertiesNV',
--- 'bindOpticalFlowSessionImageNV', 'cmdOpticalFlowExecuteNV',
--- 'createOpticalFlowSessionNV', 'destroyOpticalFlowSessionNV',
--- 'getPhysicalDeviceOpticalFlowImageFormatsNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_NV_per_stage_descriptor_set.hs b/src/Vulkan/Extensions/VK_NV_per_stage_descriptor_set.hs
--- a/src/Vulkan/Extensions/VK_NV_per_stage_descriptor_set.hs
+++ b/src/Vulkan/Extensions/VK_NV_per_stage_descriptor_set.hs
@@ -3,7 +3,7 @@
 --
 -- VK_NV_per_stage_descriptor_set - device extension
 --
--- == VK_NV_per_stage_descriptor_set
+-- = VK_NV_per_stage_descriptor_set
 --
 -- [__Name String__]
 --     @VK_NV_per_stage_descriptor_set@
@@ -99,7 +99,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePerStageDescriptorSetFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_NV_per_stage_descriptor_set.hs-boot b/src/Vulkan/Extensions/VK_NV_per_stage_descriptor_set.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_per_stage_descriptor_set.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_per_stage_descriptor_set.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_NV_per_stage_descriptor_set - device extension
 --
--- == VK_NV_per_stage_descriptor_set
+-- = VK_NV_per_stage_descriptor_set
 --
 -- [__Name String__]
 --     @VK_NV_per_stage_descriptor_set@
@@ -99,7 +99,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePerStageDescriptorSetFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_present_barrier - device extension
 --
--- == VK_NV_present_barrier
+-- = VK_NV_present_barrier
 --
 -- [__Name String__]
 --     @VK_NV_present_barrier@
@@ -21,7 +21,11 @@
 --     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 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --     and
@@ -118,9 +122,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePresentBarrierFeaturesNV',
--- 'SurfaceCapabilitiesPresentBarrierNV',
--- 'SwapchainPresentBarrierCreateInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_present_barrier - device extension
 --
--- == VK_NV_present_barrier
+-- = VK_NV_present_barrier
 --
 -- [__Name String__]
 --     @VK_NV_present_barrier@
@@ -21,7 +21,11 @@
 --     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 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --     and
@@ -118,9 +122,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDevicePresentBarrierFeaturesNV',
--- 'SurfaceCapabilitiesPresentBarrierNV',
--- 'SwapchainPresentBarrierCreateInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_NV_raw_access_chains.hs b/src/Vulkan/Extensions/VK_NV_raw_access_chains.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_raw_access_chains.hs
@@ -0,0 +1,189 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_raw_access_chains - device extension
+--
+-- = VK_NV_raw_access_chains
+--
+-- [__Name String__]
+--     @VK_NV_raw_access_chains@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     556
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_raw_access_chains.html SPV_NV_raw_access_chains>
+--
+-- [__Contact__]
+--
+--     -   Rodrigo Locatti
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_raw_access_chains] @rlocatti%0A*Here describe the issue or question you have about the VK_NV_raw_access_chains extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-12-04
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_raw_access_chains.html SPV_NV_raw_access_chains>
+--
+-- [__Contributors__]
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Rodrigo Locatti, NVIDIA
+--
+-- == Description
+--
+-- This extension allows the use of the @SPV_NV_raw_access_chains@
+-- extension in SPIR-V shader modules. This enables SPIR-V producers to
+-- efficiently implement interfaces similar to Direct3D structured buffers
+-- and byte address buffers, allowing shaders compiled from an HLSL source
+-- to generate more efficient code.
+--
+-- == New SPIR-V Capabilities
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RawAccessChainsNV RawAccessChainsNV>
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-12-04 (Rodrigo Locatti)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_raw_access_chains 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_raw_access_chains  ( PhysicalDeviceRawAccessChainsFeaturesNV(..)
+                                                  , NV_RAW_ACCESS_CHAINS_SPEC_VERSION
+                                                  , pattern NV_RAW_ACCESS_CHAINS_SPEC_VERSION
+                                                  , NV_RAW_ACCESS_CHAINS_EXTENSION_NAME
+                                                  , pattern NV_RAW_ACCESS_CHAINS_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_RAW_ACCESS_CHAINS_FEATURES_NV))
+-- | VkPhysicalDeviceRawAccessChainsFeaturesNV - Structure describing shader
+-- raw access chains features that can be supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceRawAccessChainsFeaturesNV' 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. 'PhysicalDeviceRawAccessChainsFeaturesNV' /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_raw_access_chains VK_NV_raw_access_chains>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceRawAccessChainsFeaturesNV = PhysicalDeviceRawAccessChainsFeaturesNV
+  { -- | #features-shaderRawAccessChains# @shaderRawAccessChains@ specifies
+    -- whether shader modules /can/ declare the @RawAccessChainsNV@ capability.
+    shaderRawAccessChains :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceRawAccessChainsFeaturesNV)
+#endif
+deriving instance Show PhysicalDeviceRawAccessChainsFeaturesNV
+
+instance ToCStruct PhysicalDeviceRawAccessChainsFeaturesNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceRawAccessChainsFeaturesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderRawAccessChains))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceRawAccessChainsFeaturesNV where
+  peekCStruct p = do
+    shaderRawAccessChains <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceRawAccessChainsFeaturesNV
+             (bool32ToBool shaderRawAccessChains)
+
+instance Storable PhysicalDeviceRawAccessChainsFeaturesNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceRawAccessChainsFeaturesNV where
+  zero = PhysicalDeviceRawAccessChainsFeaturesNV
+           zero
+
+
+type NV_RAW_ACCESS_CHAINS_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION"
+pattern NV_RAW_ACCESS_CHAINS_SPEC_VERSION :: forall a . Integral a => a
+pattern NV_RAW_ACCESS_CHAINS_SPEC_VERSION = 1
+
+
+type NV_RAW_ACCESS_CHAINS_EXTENSION_NAME = "VK_NV_raw_access_chains"
+
+-- No documentation found for TopLevel "VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME"
+pattern NV_RAW_ACCESS_CHAINS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern NV_RAW_ACCESS_CHAINS_EXTENSION_NAME = "VK_NV_raw_access_chains"
+
diff --git a/src/Vulkan/Extensions/VK_NV_raw_access_chains.hs-boot b/src/Vulkan/Extensions/VK_NV_raw_access_chains.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_raw_access_chains.hs-boot
@@ -0,0 +1,92 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_raw_access_chains - device extension
+--
+-- = VK_NV_raw_access_chains
+--
+-- [__Name String__]
+--     @VK_NV_raw_access_chains@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     556
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_raw_access_chains.html SPV_NV_raw_access_chains>
+--
+-- [__Contact__]
+--
+--     -   Rodrigo Locatti
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_raw_access_chains] @rlocatti%0A*Here describe the issue or question you have about the VK_NV_raw_access_chains extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-12-04
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_raw_access_chains.html SPV_NV_raw_access_chains>
+--
+-- [__Contributors__]
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Rodrigo Locatti, NVIDIA
+--
+-- == Description
+--
+-- This extension allows the use of the @SPV_NV_raw_access_chains@
+-- extension in SPIR-V shader modules. This enables SPIR-V producers to
+-- efficiently implement interfaces similar to Direct3D structured buffers
+-- and byte address buffers, allowing shaders compiled from an HLSL source
+-- to generate more efficient code.
+--
+-- == New SPIR-V Capabilities
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RawAccessChainsNV RawAccessChainsNV>
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-12-04 (Rodrigo Locatti)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_raw_access_chains 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_raw_access_chains  (PhysicalDeviceRawAccessChainsFeaturesNV) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceRawAccessChainsFeaturesNV
+
+instance ToCStruct PhysicalDeviceRawAccessChainsFeaturesNV
+instance Show PhysicalDeviceRawAccessChainsFeaturesNV
+
+instance FromCStruct PhysicalDeviceRawAccessChainsFeaturesNV
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_ray_tracing - device extension
 --
--- == VK_NV_ray_tracing
+-- = VK_NV_ray_tracing
 --
 -- [__Name String__]
 --     @VK_NV_ray_tracing@
@@ -21,12 +21,18 @@
 --     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
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 VK_KHR_get_memory_requirements2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_1
+--
 --     -   Interacts with VK_EXT_debug_report
 --
 --     -   Interacts with VK_KHR_get_memory_requirements2
@@ -35,6 +41,12 @@
 --
 --     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_ray_tracing.html SPV_NV_ray_tracing>
 --
+-- [__Deprecation State__]
+--
+--     -   /Deprecated/ by
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
+--         extension
+--
 -- [__Contact__]
 --
 --     -   Eric Werness
@@ -48,7 +60,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_ray_tracing.txt GL_NV_ray_tracing>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_ray_tracing.txt GL_NV_ray_tracing>
 --
 -- [__Contributors__]
 --
@@ -170,6 +182,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 VK_KHR_get_memory_requirements2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR'
@@ -447,29 +461,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.SHADER_UNUSED_NV', 'AabbPositionsNV',
--- 'AccelerationStructureCreateInfoNV', 'AccelerationStructureInfoNV',
--- 'AccelerationStructureInstanceNV',
--- 'AccelerationStructureMemoryRequirementsInfoNV',
--- 'AccelerationStructureMemoryRequirementsTypeNV',
--- 'Vulkan.Extensions.Handles.AccelerationStructureNV',
--- 'AccelerationStructureTypeNV', 'BindAccelerationStructureMemoryInfoNV',
--- 'BuildAccelerationStructureFlagBitsNV',
--- 'BuildAccelerationStructureFlagsNV', 'CopyAccelerationStructureModeNV',
--- 'GeometryAABBNV', 'GeometryDataNV', 'GeometryFlagBitsNV',
--- 'GeometryFlagsNV', 'GeometryInstanceFlagBitsNV',
--- 'GeometryInstanceFlagsNV', 'GeometryNV', 'GeometryTrianglesNV',
--- 'GeometryTypeNV', 'PhysicalDeviceRayTracingPropertiesNV',
--- 'RayTracingPipelineCreateInfoNV', 'RayTracingShaderGroupCreateInfoNV',
--- 'RayTracingShaderGroupTypeNV', 'TransformMatrixNV',
--- 'WriteDescriptorSetAccelerationStructureNV',
--- 'bindAccelerationStructureMemoryNV', 'cmdBuildAccelerationStructureNV',
--- 'cmdCopyAccelerationStructureNV', 'cmdTraceRaysNV',
--- 'cmdWriteAccelerationStructuresPropertiesNV', 'compileDeferredNV',
--- 'createAccelerationStructureNV', 'createRayTracingPipelinesNV',
--- 'destroyAccelerationStructureNV', 'getAccelerationStructureHandleNV',
--- 'getAccelerationStructureMemoryRequirementsNV',
--- 'getRayTracingShaderGroupHandlesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -1732,17 +1724,34 @@
 --
 -- -   #VUID-vkCmdTraceRaysNV-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
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
+--     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-vkCmdTraceRaysNV-magFilter-09598# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or
+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and
+--     @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
 -- -   #VUID-vkCmdTraceRaysNV-mipmapMode-04770# If a
 --     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR',
+--     @reductionMode@ equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE',
 --     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
@@ -1750,6 +1759,35 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
 --
+-- -   #VUID-vkCmdTraceRaysNV-mipmapMode-09599# If a
+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to
+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'
+--     and @reductionMode@ equal to either
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'
+--     or
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'
+--     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_MINMAX_BIT'
+--
+-- -   #VUID-vkCmdTraceRaysNV-unnormalizedCoordinates-09635# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @levelCount@ and @layerCount@ /must/ be 1
+--
+-- -   #VUID-vkCmdTraceRaysNV-unnormalizedCoordinates-09636# If a
+--     'Vulkan.Core10.Handles.Sampler' created with
+--     @unnormalizedCoordinates@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' is used to sample a
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s @viewType@ /must/ be
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'
+--
 -- -   #VUID-vkCmdTraceRaysNV-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>,
@@ -1817,7 +1855,7 @@
 --     '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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-cubicRangeClamp 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
@@ -1834,7 +1872,7 @@
 --     '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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-selectableCubicWeights 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
@@ -1906,6 +1944,13 @@
 --     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
+-- -   #VUID-vkCmdTraceRaysNV-None-10068# For each array of resources that
+--     is used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     the indices used to access members of the array /must/ be less than
+--     the descriptor count for the identified binding in the descriptor
+--     sets used by this command
+--
 -- -   #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
@@ -1982,10 +2027,10 @@
 --
 -- -   #VUID-vkCmdTraceRaysNV-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
+--     any calls to dynamic state setting commands for any state specified
+--     statically in the 'Vulkan.Core10.Handles.Pipeline' object bound to
+--     the pipeline bind point used by this command, since that pipeline
+--     was bound
 --
 -- -   #VUID-vkCmdTraceRaysNV-None-08609# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
@@ -2025,11 +2070,11 @@
 --
 -- -   #VUID-vkCmdTraceRaysNV-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
+--     feature 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-vkCmdTraceRaysNV-uniformBuffers-06935# If any stage of the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
@@ -2101,7 +2146,7 @@
 --     '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 ???>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-image-dimensions ???>
 --
 -- -   #VUID-vkCmdTraceRaysNV-format-07753# If a
 --     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
@@ -2253,7 +2298,7 @@
 --     @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.
+--     the image view’s format /must/ be a single-component format
 --
 -- -   #VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09217# If a
 --     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
@@ -2265,9 +2310,21 @@
 --     this command /must/
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>
 --
+-- -   #VUID-vkCmdTraceRaysNV-None-09600# If a descriptor with type equal
+--     to any of
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'
+--     is accessed as a result of this command, the image subresource
+--     identified by that descriptor /must/ be in the image layout
+--     identified when the descriptor was written
+--
 -- -   #VUID-vkCmdTraceRaysNV-None-03429# Any shader group handle
---     referenced by this call /must/ have been queried from the currently
---     bound ray tracing pipeline
+--     referenced by this call /must/ have been queried from the bound ray
+--     tracing pipeline
 --
 -- -   #VUID-vkCmdTraceRaysNV-None-09458# If the bound ray tracing pipeline
 --     state was created with the
@@ -2591,8 +2648,8 @@
                                     -- #VUID-vkGetAccelerationStructureHandleNV-dataSize-arraylength#
                                     -- @dataSize@ /must/ be greater than @0@
                                     ("dataSize" ::: Word64)
-                                 -> -- | @pData@ is a pointer to a user-allocated buffer where the results will
-                                    -- be written.
+                                 -> -- | @pData@ is a pointer to an application-allocated buffer where the
+                                    -- results will be written.
                                     --
                                     -- #VUID-vkGetAccelerationStructureHandleNV-pData-parameter# @pData@ /must/
                                     -- be a valid pointer to an array of @dataSize@ bytes
@@ -2631,6 +2688,10 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCreateRayTracingPipelinesNV-device-09677# @device@ /must/
+--     support at least one queue family with the
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT' capability
+--
 -- -   #VUID-vkCreateRayTracingPipelinesNV-flags-03415# If the @flags@
 --     member of any element of @pCreateInfos@ contains the
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
@@ -2656,6 +2717,44 @@
 --     host access to @pipelineCache@ /must/ be
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>
 --
+-- -   #VUID-vkCreateRayTracingPipelinesNV-pNext-09616# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@, @pipelineCache@ /must/
+--     be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCreateRayTracingPipelinesNV-pNext-09617# If a
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
+--     structure with the
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+--     flag set is included in the @pNext@ chain of any element of
+--     @pCreateInfos@, @pipelineCache@ /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCreateRayTracingPipelinesNV-binaryCount-09620# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT'
+--     /must/ not be set in the @flags@ of that element
+--
+-- -   #VUID-vkCreateRayTracingPipelinesNV-binaryCount-09621# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT'
+--     /must/ not be set in the @flags@ of that element
+--
+-- -   #VUID-vkCreateRayTracingPipelinesNV-binaryCount-09622# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_binary.PipelineBinaryInfoKHR'::@binaryCount@
+--     is not @0@ for any element of @pCreateInfos@,
+--     'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'
+--     /must/ not be set in the @flags@ of that element
+--
+-- -   #VUID-vkCreateRayTracingPipelinesNV-pNext-10150# If a
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
+--     structure is included in the @pNext@ chain of any element of
+--     @pCreateInfos@,
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR'
+--     flag /must/ not be set
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCreateRayTracingPipelinesNV-device-parameter# @device@
@@ -3064,9 +3163,9 @@
 -- described in more detail in
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.
 --
--- If a
+-- If the @pNext@ chain includes a
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
--- structure is present in the @pNext@ chain,
+-- structure,
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@
 -- from that structure is used instead of @flags@ from this structure.
 --
@@ -3075,7 +3174,7 @@
 -- -   #VUID-VkRayTracingPipelineCreateInfoNV-None-09497# If the @pNext@
 --     chain does not include a
 --     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
---     structure, @flags@ must be a valid combination of
+--     structure, @flags@ /must/ be a valid combination of
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
 --     values
 --
@@ -3100,8 +3199,12 @@
 --
 -- -   #VUID-VkRayTracingPipelineCreateInfoNV-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
+--     @layout@ /must/ match the shader stage
 --
+-- -   #VUID-VkRayTracingPipelineCreateInfoNV-layout-10069# If a push
+--     constant block is declared in a shader, the block must be contained
+--     inside the push constant range in @layout@ that matches the stage
+--
 -- -   #VUID-VkRayTracingPipelineCreateInfoNV-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
@@ -3215,6 +3318,10 @@
 -- -   #VUID-VkRayTracingPipelineCreateInfoNV-flags-07998# @flags@ /must/
 --     not include
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV'
+--
+-- -   #VUID-VkRayTracingPipelineCreateInfoNV-flags-11008# @flags@ /must/
+--     not include
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT'
 --
 -- == Valid Usage (Implicit)
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_ray_tracing - device extension
 --
--- == VK_NV_ray_tracing
+-- = VK_NV_ray_tracing
 --
 -- [__Name String__]
 --     @VK_NV_ray_tracing@
@@ -21,12 +21,18 @@
 --     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
+--          and
+--         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 VK_KHR_get_memory_requirements2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_1
+--
 --     -   Interacts with VK_EXT_debug_report
 --
 --     -   Interacts with VK_KHR_get_memory_requirements2
@@ -35,6 +41,12 @@
 --
 --     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_ray_tracing.html SPV_NV_ray_tracing>
 --
+-- [__Deprecation State__]
+--
+--     -   /Deprecated/ by
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
+--         extension
+--
 -- [__Contact__]
 --
 --     -   Eric Werness
@@ -48,7 +60,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_ray_tracing.txt GL_NV_ray_tracing>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_ray_tracing.txt GL_NV_ray_tracing>
 --
 -- [__Contributors__]
 --
@@ -170,6 +182,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 VK_KHR_get_memory_requirements2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 -- is supported:
 --
 -- -   'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR'
@@ -447,29 +461,7 @@
 --
 -- == See Also
 --
--- 'Vulkan.Core10.APIConstants.SHADER_UNUSED_NV', 'AabbPositionsNV',
--- 'AccelerationStructureCreateInfoNV', 'AccelerationStructureInfoNV',
--- 'AccelerationStructureInstanceNV',
--- 'AccelerationStructureMemoryRequirementsInfoNV',
--- 'AccelerationStructureMemoryRequirementsTypeNV',
--- 'Vulkan.Extensions.Handles.AccelerationStructureNV',
--- 'AccelerationStructureTypeNV', 'BindAccelerationStructureMemoryInfoNV',
--- 'BuildAccelerationStructureFlagBitsNV',
--- 'BuildAccelerationStructureFlagsNV', 'CopyAccelerationStructureModeNV',
--- 'GeometryAABBNV', 'GeometryDataNV', 'GeometryFlagBitsNV',
--- 'GeometryFlagsNV', 'GeometryInstanceFlagBitsNV',
--- 'GeometryInstanceFlagsNV', 'GeometryNV', 'GeometryTrianglesNV',
--- 'GeometryTypeNV', 'PhysicalDeviceRayTracingPropertiesNV',
--- 'RayTracingPipelineCreateInfoNV', 'RayTracingShaderGroupCreateInfoNV',
--- 'RayTracingShaderGroupTypeNV', 'TransformMatrixNV',
--- 'WriteDescriptorSetAccelerationStructureNV',
--- 'bindAccelerationStructureMemoryNV', 'cmdBuildAccelerationStructureNV',
--- 'cmdCopyAccelerationStructureNV', 'cmdTraceRaysNV',
--- 'cmdWriteAccelerationStructuresPropertiesNV', 'compileDeferredNV',
--- 'createAccelerationStructureNV', 'createRayTracingPipelinesNV',
--- 'destroyAccelerationStructureNV', 'getAccelerationStructureHandleNV',
--- 'getAccelerationStructureMemoryRequirementsNV',
--- 'getRayTracingShaderGroupHandlesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_ray_tracing_invocation_reorder - device extension
 --
--- == VK_NV_ray_tracing_invocation_reorder
+-- = VK_NV_ray_tracing_invocation_reorder
 --
 -- [__Name String__]
 --     @VK_NV_ray_tracing_invocation_reorder@
@@ -40,7 +40,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_shader_invocation_reorder.txt GL_NV_shader_invocation_reorder>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_shader_invocation_reorder.txt GL_NV_shader_invocation_reorder>
 --
 -- [__Contributors__]
 --
@@ -94,7 +94,7 @@
 -- <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>:
+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/NV/SPV_NV_shader_invocation_reorder.html this page>:
 --
 -- > #define ShaderInvocationReorderNV 5383
 -- > #define HitObjectAttributeNV 5385
@@ -222,9 +222,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRayTracingInvocationReorderFeaturesNV',
--- 'PhysicalDeviceRayTracingInvocationReorderPropertiesNV',
--- 'RayTracingInvocationReorderModeNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -350,8 +348,6 @@
 --
 -- = Description
 --
--- Note
---
 -- Because the extension changes how hits are managed there is a
 -- compatibility reason to expose the extension even when an implementation
 -- does not have sorting active.
@@ -423,11 +419,11 @@
 newtype RayTracingInvocationReorderModeNV = RayTracingInvocationReorderModeNV Int32
   deriving newtype (Eq, Ord, Storable, Zero)
 
--- | 'RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV' indicates that the
+-- | 'RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV' specifies that the
 -- implementation is likely to not reorder at reorder calls.
 pattern RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = RayTracingInvocationReorderModeNV 0
 
--- | 'RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV' indicates that the
+-- | 'RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV' specifies that the
 -- implementation is likely to reorder at reorder calls.
 pattern RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = RayTracingInvocationReorderModeNV 1
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_ray_tracing_invocation_reorder - device extension
 --
--- == VK_NV_ray_tracing_invocation_reorder
+-- = VK_NV_ray_tracing_invocation_reorder
 --
 -- [__Name String__]
 --     @VK_NV_ray_tracing_invocation_reorder@
@@ -40,7 +40,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_shader_invocation_reorder.txt GL_NV_shader_invocation_reorder>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_shader_invocation_reorder.txt GL_NV_shader_invocation_reorder>
 --
 -- [__Contributors__]
 --
@@ -94,7 +94,7 @@
 -- <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>:
+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/NV/SPV_NV_shader_invocation_reorder.html this page>:
 --
 -- > #define ShaderInvocationReorderNV 5383
 -- > #define HitObjectAttributeNV 5385
@@ -222,9 +222,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRayTracingInvocationReorderFeaturesNV',
--- 'PhysicalDeviceRayTracingInvocationReorderPropertiesNV',
--- 'RayTracingInvocationReorderModeNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_ray_tracing_motion_blur - device extension
 --
--- == VK_NV_ray_tracing_motion_blur
+-- = VK_NV_ray_tracing_motion_blur
 --
 -- [__Name String__]
 --     @VK_NV_ray_tracing_motion_blur@
@@ -39,7 +39,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_ray_tracing_motion_blur.txt GL_NV_ray_tracing_motion_blur>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_ray_tracing_motion_blur.txt GL_NV_ray_tracing_motion_blur>
 --
 -- [__Contributors__]
 --
@@ -161,16 +161,7 @@
 --
 -- == See Also
 --
--- 'AccelerationStructureGeometryMotionTrianglesDataNV',
--- 'AccelerationStructureMatrixMotionInstanceNV',
--- 'AccelerationStructureMotionInfoFlagsNV',
--- 'AccelerationStructureMotionInfoNV',
--- 'AccelerationStructureMotionInstanceDataNV',
--- 'AccelerationStructureMotionInstanceFlagsNV',
--- 'AccelerationStructureMotionInstanceNV',
--- 'AccelerationStructureMotionInstanceTypeNV',
--- 'AccelerationStructureSRTMotionInstanceNV',
--- 'PhysicalDeviceRayTracingMotionBlurFeaturesNV', 'SRTDataNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -699,8 +690,8 @@
   , -- | @transformT1@ is a 'SRTDataNV' structure describing a transformation to
     -- be applied to the acceleration structure at time 1.
     transformT1 :: SRTDataNV
-  , -- | @instanceCustomIndex@ is a 24-bit user-specified index value accessible
-    -- to ray shaders in the @InstanceCustomIndexKHR@ built-in.
+  , -- | @instanceCustomIndex@ is a 24-bit application-specified index value
+    -- accessible to ray shaders in the @InstanceCustomIndexKHR@ built-in.
     --
     -- @instanceCustomIndex@ and @mask@ occupy the same memory as if a single
     -- @uint32_t@ was specified in their place
@@ -847,8 +838,8 @@
     -- structure describing a transformation to be applied to the acceleration
     -- structure at time 1.
     transformT1 :: TransformMatrixKHR
-  , -- | @instanceCustomIndex@ is a 24-bit user-specified index value accessible
-    -- to ray shaders in the @InstanceCustomIndexKHR@ built-in.
+  , -- | @instanceCustomIndex@ is a 24-bit application-specified index value
+    -- accessible to ray shaders in the @InstanceCustomIndexKHR@ built-in.
     --
     -- @instanceCustomIndex@ and @mask@ occupy the same memory as if a single
     -- @uint32_t@ was specified in their place
@@ -962,8 +953,6 @@
 --
 -- = Description
 --
--- Note
---
 -- If writing this other than with a standard C compiler, note that the
 -- final structure should be 152 bytes in size.
 --
@@ -1071,7 +1060,8 @@
 -- = See Also
 --
 -- <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>,
--- 'AccelerationStructureMotionInfoNV'
+-- 'AccelerationStructureMotionInfoNV',
+-- 'Vulkan.Core10.FundamentalTypes.Flags'
 newtype AccelerationStructureMotionInfoFlagsNV = AccelerationStructureMotionInfoFlagsNV Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
@@ -1111,7 +1101,8 @@
 -- = See Also
 --
 -- <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>,
--- 'AccelerationStructureMotionInstanceNV'
+-- 'AccelerationStructureMotionInstanceNV',
+-- 'Vulkan.Core10.FundamentalTypes.Flags'
 newtype AccelerationStructureMotionInstanceFlagsNV = AccelerationStructureMotionInstanceFlagsNV Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_ray_tracing_motion_blur - device extension
 --
--- == VK_NV_ray_tracing_motion_blur
+-- = VK_NV_ray_tracing_motion_blur
 --
 -- [__Name String__]
 --     @VK_NV_ray_tracing_motion_blur@
@@ -39,7 +39,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_ray_tracing_motion_blur.txt GL_NV_ray_tracing_motion_blur>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_ray_tracing_motion_blur.txt GL_NV_ray_tracing_motion_blur>
 --
 -- [__Contributors__]
 --
@@ -161,16 +161,7 @@
 --
 -- == See Also
 --
--- 'AccelerationStructureGeometryMotionTrianglesDataNV',
--- 'AccelerationStructureMatrixMotionInstanceNV',
--- 'AccelerationStructureMotionInfoFlagsNV',
--- 'AccelerationStructureMotionInfoNV',
--- 'AccelerationStructureMotionInstanceDataNV',
--- 'AccelerationStructureMotionInstanceFlagsNV',
--- 'AccelerationStructureMotionInstanceNV',
--- 'AccelerationStructureMotionInstanceTypeNV',
--- 'AccelerationStructureSRTMotionInstanceNV',
--- 'PhysicalDeviceRayTracingMotionBlurFeaturesNV', 'SRTDataNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing_validation.hs b/src/Vulkan/Extensions/VK_NV_ray_tracing_validation.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_ray_tracing_validation.hs
@@ -0,0 +1,197 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_ray_tracing_validation - device extension
+--
+-- = VK_NV_ray_tracing_validation
+--
+-- [__Name String__]
+--     @VK_NV_ray_tracing_validation@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     569
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__Contact__]
+--
+--     -   Vikram Kushwaha
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_ray_tracing_validation] @vkushwaha-nv%0A*Here describe the issue or question you have about the VK_NV_ray_tracing_validation extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_NV_ray_tracing_validation.adoc VK_NV_ray_tracing_validation>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-03-04
+--
+-- [__Contributors__]
+--
+--     -   Vikram Kushwaha, NVIDIA
+--
+--     -   Eric Werness, NVIDIA
+--
+--     -   Piers Daniell, NVIDIA
+--
+-- == Description
+--
+-- This extension adds support for performing ray tracing validation at an
+-- implementation level.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceRayTracingValidationFeaturesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_RAY_TRACING_VALIDATION_EXTENSION_NAME'
+--
+-- -   'NV_RAY_TRACING_VALIDATION_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-03-04 (Vikram Kushwaha)
+--
+--     -   Initial draft
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing_validation 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_ray_tracing_validation  ( PhysicalDeviceRayTracingValidationFeaturesNV(..)
+                                                       , NV_RAY_TRACING_VALIDATION_SPEC_VERSION
+                                                       , pattern NV_RAY_TRACING_VALIDATION_SPEC_VERSION
+                                                       , NV_RAY_TRACING_VALIDATION_EXTENSION_NAME
+                                                       , pattern NV_RAY_TRACING_VALIDATION_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_RAY_TRACING_VALIDATION_FEATURES_NV))
+-- | VkPhysicalDeviceRayTracingValidationFeaturesNV - Structure describing
+-- the ray tracing validation features that can be supported by an
+-- implementation
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceRayTracingValidationFeaturesNV' 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. 'PhysicalDeviceRayTracingValidationFeaturesNV' /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_ray_tracing_validation VK_NV_ray_tracing_validation>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceRayTracingValidationFeaturesNV = PhysicalDeviceRayTracingValidationFeaturesNV
+  { -- | #features-rayTracingValidation# @rayTracingValidation@ indicates whether
+    -- the implementation supports the ray tracing validation feature.
+    rayTracingValidation :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceRayTracingValidationFeaturesNV)
+#endif
+deriving instance Show PhysicalDeviceRayTracingValidationFeaturesNV
+
+instance ToCStruct PhysicalDeviceRayTracingValidationFeaturesNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceRayTracingValidationFeaturesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (rayTracingValidation))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceRayTracingValidationFeaturesNV where
+  peekCStruct p = do
+    rayTracingValidation <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceRayTracingValidationFeaturesNV
+             (bool32ToBool rayTracingValidation)
+
+instance Storable PhysicalDeviceRayTracingValidationFeaturesNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceRayTracingValidationFeaturesNV where
+  zero = PhysicalDeviceRayTracingValidationFeaturesNV
+           zero
+
+
+type NV_RAY_TRACING_VALIDATION_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION"
+pattern NV_RAY_TRACING_VALIDATION_SPEC_VERSION :: forall a . Integral a => a
+pattern NV_RAY_TRACING_VALIDATION_SPEC_VERSION = 1
+
+
+type NV_RAY_TRACING_VALIDATION_EXTENSION_NAME = "VK_NV_ray_tracing_validation"
+
+-- No documentation found for TopLevel "VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME"
+pattern NV_RAY_TRACING_VALIDATION_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern NV_RAY_TRACING_VALIDATION_EXTENSION_NAME = "VK_NV_ray_tracing_validation"
+
diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing_validation.hs-boot b/src/Vulkan/Extensions/VK_NV_ray_tracing_validation.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_ray_tracing_validation.hs-boot
@@ -0,0 +1,99 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_ray_tracing_validation - device extension
+--
+-- = VK_NV_ray_tracing_validation
+--
+-- [__Name String__]
+--     @VK_NV_ray_tracing_validation@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     569
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__Contact__]
+--
+--     -   Vikram Kushwaha
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_ray_tracing_validation] @vkushwaha-nv%0A*Here describe the issue or question you have about the VK_NV_ray_tracing_validation extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_NV_ray_tracing_validation.adoc VK_NV_ray_tracing_validation>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-03-04
+--
+-- [__Contributors__]
+--
+--     -   Vikram Kushwaha, NVIDIA
+--
+--     -   Eric Werness, NVIDIA
+--
+--     -   Piers Daniell, NVIDIA
+--
+-- == Description
+--
+-- This extension adds support for performing ray tracing validation at an
+-- implementation level.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceRayTracingValidationFeaturesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_RAY_TRACING_VALIDATION_EXTENSION_NAME'
+--
+-- -   'NV_RAY_TRACING_VALIDATION_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV'
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-03-04 (Vikram Kushwaha)
+--
+--     -   Initial draft
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing_validation 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_ray_tracing_validation  (PhysicalDeviceRayTracingValidationFeaturesNV) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceRayTracingValidationFeaturesNV
+
+instance ToCStruct PhysicalDeviceRayTracingValidationFeaturesNV
+instance Show PhysicalDeviceRayTracingValidationFeaturesNV
+
+instance FromCStruct PhysicalDeviceRayTracingValidationFeaturesNV
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_representative_fragment_test - device extension
 --
--- == VK_NV_representative_fragment_test
+-- = VK_NV_representative_fragment_test
 --
 -- [__Name String__]
 --     @VK_NV_representative_fragment_test@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -152,8 +154,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRepresentativeFragmentTestFeaturesNV',
--- 'PipelineRepresentativeFragmentTestStateCreateInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_representative_fragment_test - device extension
 --
--- == VK_NV_representative_fragment_test
+-- = VK_NV_representative_fragment_test
 --
 -- [__Name String__]
 --     @VK_NV_representative_fragment_test@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -152,8 +154,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceRepresentativeFragmentTestFeaturesNV',
--- 'PipelineRepresentativeFragmentTestStateCreateInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_sample_mask_override_coverage - device extension
 --
--- == VK_NV_sample_mask_override_coverage
+-- = VK_NV_sample_mask_override_coverage
 --
 -- [__Name String__]
 --     @VK_NV_sample_mask_override_coverage@
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_scissor_exclusive - device extension
 --
--- == VK_NV_scissor_exclusive
+-- = VK_NV_scissor_exclusive
 --
 -- [__Name String__]
 --     @VK_NV_scissor_exclusive@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -124,9 +126,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceExclusiveScissorFeaturesNV',
--- 'PipelineViewportExclusiveScissorStateCreateInfoNV',
--- 'cmdSetExclusiveScissorEnableNV', 'cmdSetExclusiveScissorNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -537,7 +537,7 @@
 -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it defines
 -- parameters of the exclusive scissor test. If this structure is not
 -- included in the @pNext@ chain, it is equivalent to specifying this
--- structure with a @exclusiveScissorCount@ of @0@.
+-- structure with an @exclusiveScissorCount@ of @0@.
 --
 -- == Valid Usage
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_scissor_exclusive - device extension
 --
--- == VK_NV_scissor_exclusive
+-- = VK_NV_scissor_exclusive
 --
 -- [__Name String__]
 --     @VK_NV_scissor_exclusive@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -124,9 +126,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceExclusiveScissorFeaturesNV',
--- 'PipelineViewportExclusiveScissorStateCreateInfoNV',
--- 'cmdSetExclusiveScissorEnableNV', 'cmdSetExclusiveScissorNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_NV_shader_atomic_float16_vector.hs b/src/Vulkan/Extensions/VK_NV_shader_atomic_float16_vector.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_shader_atomic_float16_vector.hs
@@ -0,0 +1,212 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_shader_atomic_float16_vector - device extension
+--
+-- = VK_NV_shader_atomic_float16_vector
+--
+-- [__Name String__]
+--     @VK_NV_shader_atomic_float16_vector@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     564
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_shader_atomic_fp16_vector.html SPV_NV_shader_atomic_fp16_vector>
+--
+-- [__Contact__]
+--
+--     -   Jeff Bolz
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_shader_atomic_float16_vector] @jeffbolznv%0A*Here describe the issue or question you have about the VK_NV_shader_atomic_float16_vector extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-02-03
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension provides API support for
+--         <https://registry.khronos.org/OpenGL/extensions/NV/NV_shader_atomic_fp16_vector.txt GL_NV_shader_atomic_fp16_vector>
+--
+-- [__Contributors__]
+--
+--     -   Jeff Bolz, NVIDIA
+--
+-- == Description
+--
+-- This extension allows a shader to perform atomic add, min, max, and
+-- exchange operations on 2- and 4-component vectors of float16. Buffer,
+-- workgroup, and image storage classes are all supported.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME'
+--
+-- -   'NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV'
+--
+-- == Issues
+--
+-- None.
+--
+-- == New SPIR-V Capabilities
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16VectorNV AtomicFloat16VectorNV>
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-02-03 (Jeff Bolz)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_atomic_float16_vector 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_shader_atomic_float16_vector  ( PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV(..)
+                                                             , NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION
+                                                             , pattern NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION
+                                                             , NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME
+                                                             , pattern NV_SHADER_ATOMIC_FLOAT16_VECTOR_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_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV))
+-- | VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV - Structure
+-- describing features supported by VK_NV_shader_atomic_float16_vector
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV' 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. 'PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV' /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_shader_atomic_float16_vector VK_NV_shader_atomic_float16_vector>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV = PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV
+  { -- | #features-shaderFloat16VectorAtomics# @shaderFloat16VectorAtomics@
+    -- indicates whether shaders /can/ perform 16-bit floating-point, 2- and
+    -- 4-component vector atomic operations.
+    shaderFloat16VectorAtomics :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV)
+#endif
+deriving instance Show PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV
+
+instance ToCStruct PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderFloat16VectorAtomics))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV where
+  peekCStruct p = do
+    shaderFloat16VectorAtomics <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV
+             (bool32ToBool shaderFloat16VectorAtomics)
+
+instance Storable PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV where
+  zero = PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV
+           zero
+
+
+type NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION"
+pattern NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION :: forall a . Integral a => a
+pattern NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION = 1
+
+
+type NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME = "VK_NV_shader_atomic_float16_vector"
+
+-- No documentation found for TopLevel "VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME"
+pattern NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME = "VK_NV_shader_atomic_float16_vector"
+
diff --git a/src/Vulkan/Extensions/VK_NV_shader_atomic_float16_vector.hs-boot b/src/Vulkan/Extensions/VK_NV_shader_atomic_float16_vector.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_shader_atomic_float16_vector.hs-boot
@@ -0,0 +1,113 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_shader_atomic_float16_vector - device extension
+--
+-- = VK_NV_shader_atomic_float16_vector
+--
+-- [__Name String__]
+--     @VK_NV_shader_atomic_float16_vector@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     564
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__SPIR-V Dependencies__]
+--
+--     -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_shader_atomic_fp16_vector.html SPV_NV_shader_atomic_fp16_vector>
+--
+-- [__Contact__]
+--
+--     -   Jeff Bolz
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_shader_atomic_float16_vector] @jeffbolznv%0A*Here describe the issue or question you have about the VK_NV_shader_atomic_float16_vector extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2024-02-03
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension provides API support for
+--         <https://registry.khronos.org/OpenGL/extensions/NV/NV_shader_atomic_fp16_vector.txt GL_NV_shader_atomic_fp16_vector>
+--
+-- [__Contributors__]
+--
+--     -   Jeff Bolz, NVIDIA
+--
+-- == Description
+--
+-- This extension allows a shader to perform atomic add, min, max, and
+-- exchange operations on 2- and 4-component vectors of float16. Buffer,
+-- workgroup, and image storage classes are all supported.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME'
+--
+-- -   'NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV'
+--
+-- == Issues
+--
+-- None.
+--
+-- == New SPIR-V Capabilities
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16VectorNV AtomicFloat16VectorNV>
+--
+-- == Version History
+--
+-- -   Revision 1, 2024-02-03 (Jeff Bolz)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_atomic_float16_vector 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_shader_atomic_float16_vector  (PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV
+
+instance ToCStruct PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV
+instance Show PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV
+
+instance FromCStruct PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV
+
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_shader_image_footprint - device extension
 --
--- == VK_NV_shader_image_footprint
+-- = VK_NV_shader_image_footprint
 --
 -- [__Name String__]
 --     @VK_NV_shader_image_footprint@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -43,7 +45,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_shader_texture_footprint.txt GL_NV_shader_texture_footprint>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_shader_texture_footprint.txt GL_NV_shader_texture_footprint>
 --
 -- [__Contributors__]
 --
@@ -258,7 +260,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderImageFootprintFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_shader_image_footprint - device extension
 --
--- == VK_NV_shader_image_footprint
+-- = VK_NV_shader_image_footprint
 --
 -- [__Name String__]
 --     @VK_NV_shader_image_footprint@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -43,7 +45,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_shader_texture_footprint.txt GL_NV_shader_texture_footprint>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_shader_texture_footprint.txt GL_NV_shader_texture_footprint>
 --
 -- [__Contributors__]
 --
@@ -258,7 +260,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderImageFootprintFeaturesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_shader_sm_builtins - device extension
 --
--- == VK_NV_shader_sm_builtins
+-- = VK_NV_shader_sm_builtins
 --
 -- [__Name String__]
 --     @VK_NV_shader_sm_builtins@
@@ -21,7 +21,7 @@
 --     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -40,7 +40,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_shader_sm_builtins.txt GL_NV_shader_sm_builtins>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_shader_sm_builtins.txt GL_NV_shader_sm_builtins>
 --
 -- [__Contributors__]
 --
@@ -122,8 +122,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderSMBuiltinsFeaturesNV',
--- 'PhysicalDeviceShaderSMBuiltinsPropertiesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_shader_sm_builtins - device extension
 --
--- == VK_NV_shader_sm_builtins
+-- = VK_NV_shader_sm_builtins
 --
 -- [__Name String__]
 --     @VK_NV_shader_sm_builtins@
@@ -21,7 +21,7 @@
 --     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -40,7 +40,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_shader_sm_builtins.txt GL_NV_shader_sm_builtins>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_shader_sm_builtins.txt GL_NV_shader_sm_builtins>
 --
 -- [__Contributors__]
 --
@@ -122,8 +122,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceShaderSMBuiltinsFeaturesNV',
--- 'PhysicalDeviceShaderSMBuiltinsPropertiesNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_shader_subgroup_partitioned - device extension
 --
--- == VK_NV_shader_subgroup_partitioned
+-- = VK_NV_shader_subgroup_partitioned
 --
 -- [__Name String__]
 --     @VK_NV_shader_subgroup_partitioned@
@@ -21,7 +21,7 @@
 --     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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -40,7 +40,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GL_NV_shader_subgroup_partitioned.txt GL_NV_shader_subgroup_partitioned>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GL_NV_shader_subgroup_partitioned.txt GL_NV_shader_subgroup_partitioned>
 --
 -- [__Contributors__]
 --
@@ -53,7 +53,7 @@
 -- on
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroups>
 -- via the
--- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GL_NV_shader_subgroup_partitioned.txt GL_NV_shader_subgroup_partitioned>
+-- <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GL_NV_shader_subgroup_partitioned.txt GL_NV_shader_subgroup_partitioned>
 -- GLSL extension and
 -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_shader_subgroup_partitioned.html SPV_NV_shader_subgroup_partitioned>
 -- SPIR-V extension. Support for these new operations is advertised via the
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_shading_rate_image - device extension
 --
--- == VK_NV_shading_rate_image
+-- = VK_NV_shading_rate_image
 --
 -- [__Name String__]
 --     @VK_NV_shading_rate_image@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -40,7 +42,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_shading_rate_image.txt GL_NV_shading_rate_image>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_shading_rate_image.txt GL_NV_shading_rate_image>
 --
 -- [__Contributors__]
 --
@@ -259,14 +261,7 @@
 --
 -- == See Also
 --
--- 'CoarseSampleLocationNV', 'CoarseSampleOrderCustomNV',
--- 'CoarseSampleOrderTypeNV', 'PhysicalDeviceShadingRateImageFeaturesNV',
--- 'PhysicalDeviceShadingRateImagePropertiesNV',
--- 'PipelineViewportCoarseSampleOrderStateCreateInfoNV',
--- 'PipelineViewportShadingRateImageStateCreateInfoNV',
--- 'ShadingRatePaletteEntryNV', 'ShadingRatePaletteNV',
--- 'cmdBindShadingRateImageNV', 'cmdSetCoarseSampleOrderNV',
--- 'cmdSetViewportShadingRatePaletteNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -488,9 +483,8 @@
                              -- recorded.
                              CommandBuffer
                           -> -- | @imageView@ is an image view handle specifying the shading rate image.
-                             -- @imageView@ /may/ be set to 'Vulkan.Core10.APIConstants.NULL_HANDLE',
-                             -- which is equivalent to specifying a view of an image filled with zero
-                             -- values.
+                             -- @imageView@ /may/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE', which is
+                             -- equivalent to specifying a view of an image filled with zero values.
                              ImageView
                           -> -- | @imageLayout@ is the layout that the image subresources accessible from
                              -- @imageView@ will be in when the shading rate image is accessed.
@@ -935,8 +929,8 @@
     -- the implementation supports the @ShadingRateNV@ SPIR-V execution mode.
     shadingRateImage :: Bool
   , -- | #features-shadingRateCoarseSampleOrder# @shadingRateCoarseSampleOrder@
-    -- indicates that the implementation supports a user-configurable ordering
-    -- of coverage samples in fragments larger than one pixel.
+    -- indicates that the implementation supports an application-configurable
+    -- ordering of coverage samples in fragments larger than one pixel.
     shadingRateCoarseSampleOrder :: Bool
   }
   deriving (Typeable, Eq)
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_shading_rate_image - device extension
 --
--- == VK_NV_shading_rate_image
+-- = VK_NV_shading_rate_image
 --
 -- [__Name String__]
 --     @VK_NV_shading_rate_image@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__SPIR-V Dependencies__]
 --
@@ -40,7 +42,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_shading_rate_image.txt GL_NV_shading_rate_image>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/nv/GLSL_NV_shading_rate_image.txt GL_NV_shading_rate_image>
 --
 -- [__Contributors__]
 --
@@ -259,14 +261,7 @@
 --
 -- == See Also
 --
--- 'CoarseSampleLocationNV', 'CoarseSampleOrderCustomNV',
--- 'CoarseSampleOrderTypeNV', 'PhysicalDeviceShadingRateImageFeaturesNV',
--- 'PhysicalDeviceShadingRateImagePropertiesNV',
--- 'PipelineViewportCoarseSampleOrderStateCreateInfoNV',
--- 'PipelineViewportShadingRateImageStateCreateInfoNV',
--- 'ShadingRatePaletteEntryNV', 'ShadingRatePaletteNV',
--- 'cmdBindShadingRateImageNV', 'cmdSetCoarseSampleOrderNV',
--- 'cmdSetViewportShadingRatePaletteNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_viewport_array2 - device extension
 --
--- == VK_NV_viewport_array2
+-- = VK_NV_viewport_array2
 --
 -- [__Name String__]
 --     @VK_NV_viewport_array2@
@@ -42,10 +42,15 @@
 --     -   This extension provides API support for
 --         <https://registry.khronos.org/OpenGL/extensions/NV/NV_viewport_array2.txt GL_NV_viewport_array2>
 --
---     -   This extension requires the @geometryShader@ and @multiViewport@
+--     -   This extension requires the
+--         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--         and
+--         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
 --         features.
 --
---     -   This extension interacts with the @tessellationShader@ feature.
+--     -   This extension interacts with the
+--         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--         feature.
 --
 -- [__Contributors__]
 --
@@ -81,10 +86,8 @@
 -- When using GLSL source-based shading languages, the @gl_ViewportMask@[]
 -- built-in output variable and @viewport_relative@ layout qualifier from
 -- @GL_NV_viewport_array2@ map to the @ViewportMaskNV@ and
--- @ViewportRelativeNV@ decorations, respectively. Behaviour is described
--- in the @GL_NV_viewport_array2@ extension specification.
---
--- Note
+-- @ViewportRelativeNV@ decorations, respectively. Behavior is described in
+-- the @GL_NV_viewport_array2@ extension specification.
 --
 -- The @ShaderViewportIndexLayerNV@ capability is equivalent to the
 -- @ShaderViewportIndexLayerEXT@ capability added by
@@ -116,7 +119,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndexLayerNV ShaderViewportIndexLayerNV>
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndexLayerEXT ShaderViewportIndexLayerNV>
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportMaskNV ShaderViewportMaskNV>
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_viewport_swizzle - device extension
 --
--- == VK_NV_viewport_swizzle
+-- = VK_NV_viewport_swizzle
 --
 -- [__Name String__]
 --     @VK_NV_viewport_swizzle@
@@ -254,9 +254,7 @@
 --
 -- == See Also
 --
--- 'PipelineViewportSwizzleStateCreateFlagsNV',
--- 'PipelineViewportSwizzleStateCreateInfoNV',
--- 'ViewportCoordinateSwizzleNV', 'ViewportSwizzleNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -479,6 +477,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle VK_NV_viewport_swizzle>,
+-- 'Vulkan.Core10.FundamentalTypes.Flags',
 -- 'PipelineViewportSwizzleStateCreateInfoNV'
 newtype PipelineViewportSwizzleStateCreateFlagsNV = PipelineViewportSwizzleStateCreateFlagsNV Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_viewport_swizzle - device extension
 --
--- == VK_NV_viewport_swizzle
+-- = VK_NV_viewport_swizzle
 --
 -- [__Name String__]
 --     @VK_NV_viewport_swizzle@
@@ -254,9 +254,7 @@
 --
 -- == See Also
 --
--- 'PipelineViewportSwizzleStateCreateFlagsNV',
--- 'PipelineViewportSwizzleStateCreateInfoNV',
--- 'ViewportCoordinateSwizzleNV', 'ViewportSwizzleNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_win32_keyed_mutex - device extension
 --
--- == VK_NV_win32_keyed_mutex
+-- = VK_NV_win32_keyed_mutex
 --
 -- [__Name String__]
 --     @VK_NV_win32_keyed_mutex@
@@ -223,7 +223,7 @@
 --
 -- == See Also
 --
--- 'Win32KeyedMutexAcquireReleaseInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_NV_win32_keyed_mutex - device extension
 --
--- == VK_NV_win32_keyed_mutex
+-- = VK_NV_win32_keyed_mutex
 --
 -- [__Name String__]
 --     @VK_NV_win32_keyed_mutex@
@@ -223,7 +223,7 @@
 --
 -- == See Also
 --
--- 'Win32KeyedMutexAcquireReleaseInfoNV'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs
--- a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_filter_cubic_clamp - device extension
 --
--- == VK_QCOM_filter_cubic_clamp
+-- = VK_QCOM_filter_cubic_clamp
 --
 -- [__Name String__]
 --     @VK_QCOM_filter_cubic_clamp@
@@ -24,7 +24,7 @@
 --     <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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan 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>
@@ -100,7 +100,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceCubicClampFeaturesQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -165,7 +165,7 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceCubicClampFeaturesQCOM = PhysicalDeviceCubicClampFeaturesQCOM
-  { -- | #features-filter-cubic-range-clamp# @cubicRangeClamp@ indicates that the
+  { -- | #features-cubicRangeClamp# @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 }
diff --git a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs-boot b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs-boot
--- a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs-boot
+++ b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_filter_cubic_clamp - device extension
 --
--- == VK_QCOM_filter_cubic_clamp
+-- = VK_QCOM_filter_cubic_clamp
 --
 -- [__Name String__]
 --     @VK_QCOM_filter_cubic_clamp@
@@ -24,7 +24,7 @@
 --     <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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan 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>
@@ -100,7 +100,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceCubicClampFeaturesQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs
--- a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_filter_cubic_weights - device extension
 --
--- == VK_QCOM_filter_cubic_weights
+-- = VK_QCOM_filter_cubic_weights
 --
 -- [__Name String__]
 --     @VK_QCOM_filter_cubic_weights@
@@ -105,9 +105,7 @@
 --
 -- == See Also
 --
--- 'BlitImageCubicWeightsInfoQCOM', 'CubicFilterWeightsQCOM',
--- 'PhysicalDeviceCubicWeightsFeaturesQCOM',
--- 'SamplerCubicWeightsCreateInfoQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -189,9 +187,8 @@
 -- '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.
+  { -- | #features-selectableCubicWeights# @selectableCubicWeights@ indicates
+    -- that the implementation supports the selection of filter cubic weights.
     selectableCubicWeights :: Bool }
   deriving (Typeable, Eq)
 #if defined(GENERIC_INSTANCES)
diff --git a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs-boot b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs-boot
--- a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs-boot
+++ b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_filter_cubic_weights - device extension
 --
--- == VK_QCOM_filter_cubic_weights
+-- = VK_QCOM_filter_cubic_weights
 --
 -- [__Name String__]
 --     @VK_QCOM_filter_cubic_weights@
@@ -105,9 +105,7 @@
 --
 -- == See Also
 --
--- 'BlitImageCubicWeightsInfoQCOM', 'CubicFilterWeightsQCOM',
--- 'PhysicalDeviceCubicWeightsFeaturesQCOM',
--- 'SamplerCubicWeightsCreateInfoQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_fragment_density_map_offset - device extension
 --
--- == VK_QCOM_fragment_density_map_offset
+-- = VK_QCOM_fragment_density_map_offset
 --
 -- [__Name String__]
 --     @VK_QCOM_fragment_density_map_offset@
@@ -15,13 +15,17 @@
 --     426
 --
 -- [__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>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>
 --
@@ -33,7 +37,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2021-09-03
+--     2024-06-17
 --
 -- [__Contributors__]
 --
@@ -45,6 +49,8 @@
 --
 --     -   Jeff Leger, Qualcomm Technologies, Inc.
 --
+--     -   Manan Katwala, Qualcomm Technologies, Inc.
+--
 -- == Description
 --
 -- This extension allows an application to specify offsets to a fragment
@@ -91,15 +97,17 @@
 --
 -- == Version History
 --
+-- -   Revision 2, 2024-06-17 (Matthew Netsch)
+--
+--     -   Fix typo in spec regarding fragmentDensityMapOffset feature
+--
 -- -   Revision 1, 2021-09-03 (Matthew Netsch)
 --
 --     -   Initial version
 --
 -- == See Also
 --
--- 'PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',
--- 'PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM',
--- 'SubpassFragmentDensityMapOffsetEndInfoQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -181,7 +189,9 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
-  { -- No documentation found for Nested "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM" "fragmentDensityMapOffset"
+  { -- | #features-fragmentDensityMapOffset# @fragmentDensityMapOffset@ specifies
+    -- whether the implementation supports
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets>
     fragmentDensityMapOffset :: Bool }
   deriving (Typeable, Eq)
 #if defined(GENERIC_INSTANCES)
@@ -308,7 +318,7 @@
 --
 -- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapOffsets-06503#
 --     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffsets fragmentDensityMapOffsets>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset>
 --     feature is not enabled or fragment density map is not enabled in the
 --     render pass, @fragmentDensityOffsetCount@ /must/ equal @0@
 --
@@ -437,11 +447,11 @@
            mempty
 
 
-type QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1
+type QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 2
 
 -- No documentation found for TopLevel "VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION"
 pattern QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION :: forall a . Integral a => a
-pattern QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1
+pattern QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 2
 
 
 type QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset"
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_fragment_density_map_offset - device extension
 --
--- == VK_QCOM_fragment_density_map_offset
+-- = VK_QCOM_fragment_density_map_offset
 --
 -- [__Name String__]
 --     @VK_QCOM_fragment_density_map_offset@
@@ -15,13 +15,17 @@
 --     426
 --
 -- [__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>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>
 --
@@ -33,7 +37,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2021-09-03
+--     2024-06-17
 --
 -- [__Contributors__]
 --
@@ -45,6 +49,8 @@
 --
 --     -   Jeff Leger, Qualcomm Technologies, Inc.
 --
+--     -   Manan Katwala, Qualcomm Technologies, Inc.
+--
 -- == Description
 --
 -- This extension allows an application to specify offsets to a fragment
@@ -91,15 +97,17 @@
 --
 -- == Version History
 --
+-- -   Revision 2, 2024-06-17 (Matthew Netsch)
+--
+--     -   Fix typo in spec regarding fragmentDensityMapOffset feature
+--
 -- -   Revision 1, 2021-09-03 (Matthew Netsch)
 --
 --     -   Initial version
 --
 -- == See Also
 --
--- 'PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',
--- 'PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM',
--- 'SubpassFragmentDensityMapOffsetEndInfoQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_image_processing - device extension
 --
--- == VK_QCOM_image_processing
+-- = VK_QCOM_image_processing
 --
 -- [__Name String__]
 --     @VK_QCOM_image_processing@
@@ -22,9 +22,13 @@
 --
 -- [__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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_KHR_format_feature_flags2
 --
 -- [__SPIR-V Dependencies__]
@@ -47,7 +51,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/qcom/GLSL_QCOM_image_processing.txt GL_QCOM_image_processing>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/qcom/GLSL_QCOM_image_processing.txt GL_QCOM_image_processing>
 --
 -- [__Contributors__]
 --
@@ -76,7 +80,7 @@
 --
 -- -   The @OpImageBoxFilterQCOM@ instruction takes 3 operands: /sampled
 --     image/, /box size/, and texture coordinates. Note that /box size/
---     specifies a floating point width and height in texels. The
+--     specifies a floating-point width and height in texels. The
 --     instruction computes a weighted average of all texels in the
 --     /sampled image/ that are covered (either partially or fully) by a
 --     box with the specified size and centered at the specified texture
@@ -97,7 +101,7 @@
 -- multi-layer, multi-sampled, or depth\/stencil images. The instructions
 -- can be used in any shader stage.
 --
--- Implementations of this this extension should support these operations
+-- Implementations of this extension should support these operations
 -- natively at the HW instruction level, offering potential performance
 -- gains as well as ease of development.
 --
@@ -152,6 +156,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending
@@ -171,9 +177,7 @@
 --
 -- == See Also
 --
--- 'ImageViewSampleWeightCreateInfoQCOM',
--- 'PhysicalDeviceImageProcessingFeaturesQCOM',
--- 'PhysicalDeviceImageProcessingPropertiesQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_image_processing - device extension
 --
--- == VK_QCOM_image_processing
+-- = VK_QCOM_image_processing
 --
 -- [__Name String__]
 --     @VK_QCOM_image_processing@
@@ -22,9 +22,13 @@
 --
 -- [__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>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_KHR_format_feature_flags2
 --
 -- [__SPIR-V Dependencies__]
@@ -47,7 +51,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/qcom/GLSL_QCOM_image_processing.txt GL_QCOM_image_processing>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/qcom/GLSL_QCOM_image_processing.txt GL_QCOM_image_processing>
 --
 -- [__Contributors__]
 --
@@ -76,7 +80,7 @@
 --
 -- -   The @OpImageBoxFilterQCOM@ instruction takes 3 operands: /sampled
 --     image/, /box size/, and texture coordinates. Note that /box size/
---     specifies a floating point width and height in texels. The
+--     specifies a floating-point width and height in texels. The
 --     instruction computes a weighted average of all texels in the
 --     /sampled image/ that are covered (either partially or fully) by a
 --     box with the specified size and centered at the specified texture
@@ -97,7 +101,7 @@
 -- multi-layer, multi-sampled, or depth\/stencil images. The instructions
 -- can be used in any shader stage.
 --
--- Implementations of this this extension should support these operations
+-- Implementations of this extension should support these operations
 -- natively at the HW instruction level, offering potential performance
 -- gains as well as ease of development.
 --
@@ -152,6 +156,8 @@
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   Extending
@@ -171,9 +177,7 @@
 --
 -- == See Also
 --
--- 'ImageViewSampleWeightCreateInfoQCOM',
--- 'PhysicalDeviceImageProcessingFeaturesQCOM',
--- 'PhysicalDeviceImageProcessingPropertiesQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs b/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs
--- a/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_image_processing2 - device extension
 --
--- == VK_QCOM_image_processing2
+-- = VK_QCOM_image_processing2
 --
 -- [__Name String__]
 --     @VK_QCOM_image_processing2@
@@ -40,7 +40,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/qcom/GLSL_QCOM_image_processing2.txt GL_QCOM_image_processing2>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/qcom/GLSL_QCOM_image_processing2.txt GL_QCOM_image_processing2>
 --
 -- [__Contributors__]
 --
@@ -55,7 +55,7 @@
 -- -   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
+--     windowExtent” and “compareMode” are specified by
 --     'SamplerBlockMatchWindowCreateInfoQCOM' in the sampler used to
 --     create the /target image/. Like @OpImageBlockMatchSADQCOM@,
 --     @opImageBlockMatchWindowSADQCOM@ computes an error metric, that
@@ -190,7 +190,7 @@
 -- 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
+-- 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.
 --
@@ -200,10 +200,7 @@
 --
 -- == See Also
 --
--- 'BlockMatchWindowCompareModeQCOM',
--- 'PhysicalDeviceImageProcessing2FeaturesQCOM',
--- 'PhysicalDeviceImageProcessing2PropertiesQCOM',
--- 'SamplerBlockMatchWindowCreateInfoQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs-boot b/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs-boot
--- a/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs-boot
+++ b/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_image_processing2 - device extension
 --
--- == VK_QCOM_image_processing2
+-- = VK_QCOM_image_processing2
 --
 -- [__Name String__]
 --     @VK_QCOM_image_processing2@
@@ -40,7 +40,7 @@
 -- [__Interactions and External Dependencies__]
 --
 --     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/qcom/GLSL_QCOM_image_processing2.txt GL_QCOM_image_processing2>
+--         <https://github.com/KhronosGroup/GLSL/blob/main/extensions/qcom/GLSL_QCOM_image_processing2.txt GL_QCOM_image_processing2>
 --
 -- [__Contributors__]
 --
@@ -55,7 +55,7 @@
 -- -   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
+--     windowExtent” and “compareMode” are specified by
 --     'SamplerBlockMatchWindowCreateInfoQCOM' in the sampler used to
 --     create the /target image/. Like @OpImageBlockMatchSADQCOM@,
 --     @opImageBlockMatchWindowSADQCOM@ computes an error metric, that
@@ -190,7 +190,7 @@
 -- 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
+-- 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.
 --
@@ -200,10 +200,7 @@
 --
 -- == See Also
 --
--- 'BlockMatchWindowCompareModeQCOM',
--- 'PhysicalDeviceImageProcessing2FeaturesQCOM',
--- 'PhysicalDeviceImageProcessing2PropertiesQCOM',
--- 'SamplerBlockMatchWindowCreateInfoQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_multiview_per_view_render_areas - device extension
 --
--- == VK_QCOM_multiview_per_view_render_areas
+-- = VK_QCOM_multiview_per_view_render_areas
 --
 -- [__Name String__]
 --     @VK_QCOM_multiview_per_view_render_areas@
@@ -149,8 +149,7 @@
 --
 -- == See Also
 --
--- 'MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM',
--- 'PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -229,7 +228,7 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM
-  { -- | #features-multiview-per-view-render-areas# @multiviewPerViewRenderAreas@
+  { -- | #features-multiviewPerViewRenderAreas# @multiviewPerViewRenderAreas@
     -- indicates that the implementation supports multiview per-view render
     -- areas.
     multiviewPerViewRenderAreas :: Bool }
@@ -292,13 +291,13 @@
 -- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo'::@renderArea@
 -- or
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@renderArea@
--- /must/ be set to a render area that includes the union of all per-view
--- render areas, /may/ be used by the implementation for optimizations, but
--- does not affect loads, stores, or resolves.
+-- /must/ be a render area that includes the union of all per-view render
+-- areas, /may/ be used by the implementation for optimizations, but does
+-- not affect loads, stores, or resolves.
 --
 -- If this structure is present and if @perViewRenderAreaCount@ is not
--- zero, then @perViewRenderAreaCount@ /must/ be at least least one greater
--- than the most significant bit set in any any element of
+-- zero, then @perViewRenderAreaCount@ /must/ be at least one greater than
+-- the most significant bit set in any element of
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo'::@pViewMasks@.
 -- or
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@
@@ -335,7 +334,7 @@
 --     render pass object included an element in
 --     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo'::@pViewMasks@
 --     that set bit @n@, then @perViewRenderAreaCount@ /must/ be at least
---     equal to @n+1@.
+--     equal to @n+1@
 --
 -- -   #VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-pNext-07866#
 --     If this structure is in the @pNext@ chain of
@@ -343,7 +342,7 @@
 --     and if
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@
 --     set bit @n@, then @perViewRenderAreaCount@ /must/ be at least equal
---     to @n+1@.
+--     to @n+1@
 --
 -- == Valid Usage (Implicit)
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_multiview_per_view_render_areas - device extension
 --
--- == VK_QCOM_multiview_per_view_render_areas
+-- = VK_QCOM_multiview_per_view_render_areas
 --
 -- [__Name String__]
 --     @VK_QCOM_multiview_per_view_render_areas@
@@ -149,8 +149,7 @@
 --
 -- == See Also
 --
--- 'MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM',
--- 'PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_multiview_per_view_viewports - device extension
 --
--- == VK_QCOM_multiview_per_view_viewports
+-- = VK_QCOM_multiview_per_view_viewports
 --
 -- [__Name String__]
 --     @VK_QCOM_multiview_per_view_viewports@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -58,7 +60,7 @@
 --
 -- This extension adds a new way to control ViewportIndex with multiview.
 -- When the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-viewports multiviewPerViewViewports>
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiviewPerViewViewports 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 render pass instance will use a viewport
@@ -84,24 +86,24 @@
 --
 -- == Issues
 --
--- 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>
+-- 1) Is it possible to enable\/disable the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiviewPerViewViewports multiviewPerViewViewports>
 -- feature for individual render pass instances?
 --
 -- __RESOLVED__: No, when the multiviewPerViewViewports feature is enabled
 -- 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
+-- because it simplifies application code and there is no known use case to
 -- 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
 -- the value of @ViewportIndex@ be read in the fragment shader?
 --
--- __RESOLVED__: No, use of the extension extension does not add an
--- implicit write to @ViewportIndex@ in any shader stage, and additionally,
--- the value of @ViewportIndex@ in the fragment shader is undefined.
+-- __RESOLVED__: No, use of the extension does not add an implicit write to
+-- @ViewportIndex@ in any shader stage, and additionally, the value of
+-- @ViewportIndex@ in the fragment shader is undefined.
 --
 -- == Version History
 --
@@ -109,7 +111,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -176,7 +178,7 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-  { -- | #features-multiview-per-view-viewports# @multiviewPerViewViewports@
+  { -- | #features-multiviewPerViewViewports# @multiviewPerViewViewports@
     -- indicates that the implementation supports multiview per-view viewports.
     multiviewPerViewViewports :: Bool }
   deriving (Typeable, Eq)
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_multiview_per_view_viewports - device extension
 --
--- == VK_QCOM_multiview_per_view_viewports
+-- = VK_QCOM_multiview_per_view_viewports
 --
 -- [__Name String__]
 --     @VK_QCOM_multiview_per_view_viewports@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -58,7 +60,7 @@
 --
 -- This extension adds a new way to control ViewportIndex with multiview.
 -- When the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-viewports multiviewPerViewViewports>
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiviewPerViewViewports 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 render pass instance will use a viewport
@@ -84,24 +86,24 @@
 --
 -- == Issues
 --
--- 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>
+-- 1) Is it possible to enable\/disable the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiviewPerViewViewports multiviewPerViewViewports>
 -- feature for individual render pass instances?
 --
 -- __RESOLVED__: No, when the multiviewPerViewViewports feature is enabled
 -- 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
+-- because it simplifies application code and there is no known use case to
 -- 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
 -- the value of @ViewportIndex@ be read in the fragment shader?
 --
--- __RESOLVED__: No, use of the extension extension does not add an
--- implicit write to @ViewportIndex@ in any shader stage, and additionally,
--- the value of @ViewportIndex@ in the fragment shader is undefined.
+-- __RESOLVED__: No, use of the extension does not add an implicit write to
+-- @ViewportIndex@ in any shader stage, and additionally, the value of
+-- @ViewportIndex@ in the fragment shader is undefined.
 --
 -- == Version History
 --
@@ -109,7 +111,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_render_pass_shader_resolve - device extension
 --
--- == VK_QCOM_render_pass_shader_resolve
+-- = VK_QCOM_render_pass_shader_resolve
 --
 -- [__Name String__]
 --     @VK_QCOM_render_pass_shader_resolve@
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_render_pass_store_ops - device extension
 --
--- == VK_QCOM_render_pass_store_ops
+-- = VK_QCOM_render_pass_store_ops
 --
 -- [__Name String__]
 --     @VK_QCOM_render_pass_store_ops@
@@ -55,8 +55,6 @@
 -- of the attachment in memory are preserved. However, if any contents were
 -- generated within the render area during rendering, the contents of the
 -- attachment will be undefined inside the render area.
---
--- Note
 --
 -- The 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp'
 -- 'Vulkan.Core10.Enums.AttachmentStoreOp.ATTACHMENT_STORE_OP_STORE' /may/
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_render_pass_transform - device extension
 --
--- == VK_QCOM_render_pass_transform
+-- = VK_QCOM_render_pass_transform
 --
 -- [__Name String__]
 --     @VK_QCOM_render_pass_transform@
@@ -174,11 +174,11 @@
 -- > uint32_t  minor = ((driverVersion) >> 12) & 0x3ff);
 -- > uint32_t  patch = ((driverVersion) & 0xfff);
 --
--- If the Adreno major.minor.patch version is greater than or equal to to
+-- If the Adreno major.minor.patch version is greater than or equal to
 -- 512.469.0, then simply use the VK_STRUCTURE_TYPE values as defined in
--- vulkan_core.h. If the version is less than or equal to to 512.468.0,
--- then use the alternate values for the two VK_STRUCTURE_TYPEs in the
--- table below.
+-- vulkan_core.h. If the version is less than or equal to 512.468.0, then
+-- use the alternate values for the two VK_STRUCTURE_TYPEs in the table
+-- below.
 --
 -- +------------------------------------------------------------+------------------+------------------+
 -- |                                                            | Adreno Driver    |                  |
@@ -260,8 +260,7 @@
 --
 -- == See Also
 --
--- 'CommandBufferInheritanceRenderPassTransformInfoQCOM',
--- 'RenderPassTransformBeginInfoQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_render_pass_transform - device extension
 --
--- == VK_QCOM_render_pass_transform
+-- = VK_QCOM_render_pass_transform
 --
 -- [__Name String__]
 --     @VK_QCOM_render_pass_transform@
@@ -174,11 +174,11 @@
 -- > uint32_t  minor = ((driverVersion) >> 12) & 0x3ff);
 -- > uint32_t  patch = ((driverVersion) & 0xfff);
 --
--- If the Adreno major.minor.patch version is greater than or equal to to
+-- If the Adreno major.minor.patch version is greater than or equal to
 -- 512.469.0, then simply use the VK_STRUCTURE_TYPE values as defined in
--- vulkan_core.h. If the version is less than or equal to to 512.468.0,
--- then use the alternate values for the two VK_STRUCTURE_TYPEs in the
--- table below.
+-- vulkan_core.h. If the version is less than or equal to 512.468.0, then
+-- use the alternate values for the two VK_STRUCTURE_TYPEs in the table
+-- below.
 --
 -- +------------------------------------------------------------+------------------+------------------+
 -- |                                                            | Adreno Driver    |                  |
@@ -260,8 +260,7 @@
 --
 -- == See Also
 --
--- 'CommandBufferInheritanceRenderPassTransformInfoQCOM',
--- 'RenderPassTransformBeginInfoQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_rotated_copy_commands - device extension
 --
--- == VK_QCOM_rotated_copy_commands
+-- = VK_QCOM_rotated_copy_commands
 --
 -- [__Name String__]
 --     @VK_QCOM_rotated_copy_commands@
@@ -22,6 +22,8 @@
 --
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -116,7 +118,7 @@
 --
 -- == See Also
 --
--- 'CopyCommandTransformInfoQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_rotated_copy_commands - device extension
 --
--- == VK_QCOM_rotated_copy_commands
+-- = VK_QCOM_rotated_copy_commands
 --
 -- [__Name String__]
 --     @VK_QCOM_rotated_copy_commands@
@@ -22,6 +22,8 @@
 --
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Vulkan Version 1.3>
 --
 -- [__Contact__]
 --
@@ -116,7 +118,7 @@
 --
 -- == See Also
 --
--- 'CopyCommandTransformInfoQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_tile_properties - device extension
 --
--- == VK_QCOM_tile_properties
+-- = VK_QCOM_tile_properties
 --
 -- [__Name String__]
 --     @VK_QCOM_tile_properties@
@@ -22,9 +22,13 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_KHR_dynamic_rendering
 --
 -- [__Contact__]
@@ -77,6 +81,8 @@
 --
 -- If
 -- <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 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'
@@ -101,9 +107,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceTilePropertiesFeaturesQCOM', 'TilePropertiesQCOM',
--- 'getDynamicRenderingTilePropertiesQCOM',
--- 'getFramebufferTilePropertiesQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -199,9 +203,9 @@
 --
 -- If @pProperties@ is @NULL@, then the number of tile properties available
 -- is returned in @pPropertiesCount@. Otherwise, @pPropertiesCount@ /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 properties actually written to @pProperties@. If
+-- point to a variable set by the application to the number of elements in
+-- the @pProperties@ array, and on return the variable is overwritten with
+-- the number of properties actually written to @pProperties@. If
 -- @pPropertiesCount@ is less than the number of tile properties available,
 -- at most @pPropertiesCount@ structures will be written, and
 -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of
@@ -245,6 +249,9 @@
 --
 --     -   'Vulkan.Core10.Enums.Result.INCOMPLETE'
 --
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--     None
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_tile_properties VK_QCOM_tile_properties>,
@@ -298,6 +305,9 @@
 --
 --     -   'Vulkan.Core10.Enums.Result.SUCCESS'
 --
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--     None
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_tile_properties VK_QCOM_tile_properties>,
@@ -414,8 +424,6 @@
 --
 -- All tiles will be tightly packed around the first tile, with edges being
 -- multiples of tile width and\/or height from the origin.
---
--- Note
 --
 -- Reported value for @apronSize@ will be zero and its functionality will
 -- be described in a future extension.
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
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_tile_properties - device extension
 --
--- == VK_QCOM_tile_properties
+-- = VK_QCOM_tile_properties
 --
 -- [__Name String__]
 --     @VK_QCOM_tile_properties@
@@ -22,9 +22,13 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__API Interactions__]
 --
+--     -   Interacts with VK_VERSION_1_3
+--
 --     -   Interacts with VK_KHR_dynamic_rendering
 --
 -- [__Contact__]
@@ -77,6 +81,8 @@
 --
 -- If
 -- <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 Vulkan Version 1.3>
 -- is supported:
 --
 -- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'
@@ -101,9 +107,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceTilePropertiesFeaturesQCOM', 'TilePropertiesQCOM',
--- 'getDynamicRenderingTilePropertiesQCOM',
--- 'getFramebufferTilePropertiesQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs b/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs
--- a/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_ycbcr_degamma - device extension
 --
--- == VK_QCOM_ycbcr_degamma
+-- = VK_QCOM_ycbcr_degamma
 --
 -- [__Name String__]
 --     @VK_QCOM_ycbcr_degamma@
@@ -127,11 +127,11 @@
 -- 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
+-- 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
+-- 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.
 --
@@ -141,8 +141,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceYcbcrDegammaFeaturesQCOM',
--- 'SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -209,7 +208,7 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceYcbcrDegammaFeaturesQCOM = PhysicalDeviceYcbcrDegammaFeaturesQCOM
-  { -- | #features-ycbcr-degamma# @ycbcrDegamma@ indicates whether the
+  { -- | #features-ycbcrDegamma# @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 }
diff --git a/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs-boot b/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs-boot
--- a/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs-boot
+++ b/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_QCOM_ycbcr_degamma - device extension
 --
--- == VK_QCOM_ycbcr_degamma
+-- = VK_QCOM_ycbcr_degamma
 --
 -- [__Name String__]
 --     @VK_QCOM_ycbcr_degamma@
@@ -127,11 +127,11 @@
 -- 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
+-- 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
+-- 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.
 --
@@ -141,8 +141,7 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceYcbcrDegammaFeaturesQCOM',
--- 'SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs b/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs
--- a/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs
+++ b/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs
@@ -3,7 +3,7 @@
 --
 -- VK_QNX_external_memory_screen_buffer - device extension
 --
--- == VK_QNX_external_memory_screen_buffer
+-- = VK_QNX_external_memory_screen_buffer
 --
 -- [__Name String__]
 --     @VK_QNX_external_memory_screen_buffer@
@@ -31,7 +31,7 @@
 --     <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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
 --
@@ -131,10 +131,7 @@
 --
 -- == See Also
 --
--- 'ExternalFormatQNX', 'ImportScreenBufferInfoQNX',
--- 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX',
--- 'ScreenBufferFormatPropertiesQNX', 'ScreenBufferPropertiesQNX',
--- 'getScreenBufferPropertiesQNX'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -666,7 +663,7 @@
 -- |                                   | 'ExternalFormatQNX'                |
 -- +-----------------------------------+------------------------------------+
 --
--- Functionality supported for QNX Screen Buffer features
+-- Functionality Supported for QNX Screen Buffer Features
 --
 -- [1]
 --     Functionality in this row is always available.
@@ -701,7 +698,7 @@
 data PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
   { -- | #features-screenBufferImport# @screenBufferImport@ indicates whether QNX
     -- Screen buffer import functionality is supported. If @screenBufferImport@
-    -- is set to 'Vulkan.Core10.FundamentalTypes.TRUE',
+    -- is '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'.
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
--- a/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs-boot
+++ b/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs-boot
@@ -3,7 +3,7 @@
 --
 -- VK_QNX_external_memory_screen_buffer - device extension
 --
--- == VK_QNX_external_memory_screen_buffer
+-- = VK_QNX_external_memory_screen_buffer
 --
 -- [__Name String__]
 --     @VK_QNX_external_memory_screen_buffer@
@@ -31,7 +31,7 @@
 --     <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>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Vulkan 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>
 --
@@ -131,10 +131,7 @@
 --
 -- == See Also
 --
--- 'ExternalFormatQNX', 'ImportScreenBufferInfoQNX',
--- 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX',
--- 'ScreenBufferFormatPropertiesQNX', 'ScreenBufferPropertiesQNX',
--- 'getScreenBufferPropertiesQNX'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_QNX_screen_surface - instance extension
 --
--- == VK_QNX_screen_surface
+-- = VK_QNX_screen_surface
 --
 -- [__Name String__]
 --     @VK_QNX_screen_surface@
@@ -80,9 +80,7 @@
 --
 -- == See Also
 --
--- 'ScreenSurfaceCreateFlagsQNX', 'ScreenSurfaceCreateInfoQNX',
--- 'createScreenSurfaceQNX',
--- 'getPhysicalDeviceScreenPresentationSupportQNX'
+-- No cross-references are available
 --
 -- == Document Notes
 --
@@ -388,7 +386,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_screen_surface VK_QNX_screen_surface>,
--- 'ScreenSurfaceCreateInfoQNX'
+-- 'Vulkan.Core10.FundamentalTypes.Flags', 'ScreenSurfaceCreateInfoQNX'
 newtype ScreenSurfaceCreateFlagsQNX = ScreenSurfaceCreateFlagsQNX Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
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
@@ -3,7 +3,7 @@
 --
 -- VK_QNX_screen_surface - instance extension
 --
--- == VK_QNX_screen_surface
+-- = VK_QNX_screen_surface
 --
 -- [__Name String__]
 --     @VK_QNX_screen_surface@
@@ -80,9 +80,7 @@
 --
 -- == See Also
 --
--- 'ScreenSurfaceCreateFlagsQNX', 'ScreenSurfaceCreateInfoQNX',
--- 'createScreenSurfaceQNX',
--- 'getPhysicalDeviceScreenPresentationSupportQNX'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_SEC_amigo_profiling - device extension
 --
--- == VK_SEC_amigo_profiling
+-- = VK_SEC_amigo_profiling
 --
 -- [__Name String__]
 --     @VK_SEC_amigo_profiling@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -47,22 +49,18 @@
 --
 -- This extension is intended to communicate information from layered API
 -- implementations such as ANGLE to internal proprietary system schedulers.
--- It has no behavioural implications beyond enabling more intelligent
--- behaviour from the system scheduler.
+-- It has no behavioral implications beyond enabling more intelligent
+-- behavior from the system scheduler.
 --
 -- Application developers should avoid using this extension. It is
 -- documented solely for the benefit of tools and layer developers, who may
 -- need to manipulate @pNext@ chains that include these structures.
 --
--- Note
---
 -- There is currently no specification language written for this extension.
 -- The links to APIs defined by the extension are to stubs that only
 -- include generated content such as API declarations and implicit valid
 -- usage statements.
 --
--- Note
---
 -- This extension is only intended for use in specific embedded
 -- environments with known implementation details, and is therefore
 -- undocumented.
@@ -135,7 +133,7 @@
 --
 -- == See Also
 --
--- 'AmigoProfilingSubmitInfoSEC', 'PhysicalDeviceAmigoProfilingFeaturesSEC'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_SEC_amigo_profiling - device extension
 --
--- == VK_SEC_amigo_profiling
+-- = VK_SEC_amigo_profiling
 --
 -- [__Name String__]
 --     @VK_SEC_amigo_profiling@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Contact__]
 --
@@ -47,22 +49,18 @@
 --
 -- This extension is intended to communicate information from layered API
 -- implementations such as ANGLE to internal proprietary system schedulers.
--- It has no behavioural implications beyond enabling more intelligent
--- behaviour from the system scheduler.
+-- It has no behavioral implications beyond enabling more intelligent
+-- behavior from the system scheduler.
 --
 -- Application developers should avoid using this extension. It is
 -- documented solely for the benefit of tools and layer developers, who may
 -- need to manipulate @pNext@ chains that include these structures.
 --
--- Note
---
 -- There is currently no specification language written for this extension.
 -- The links to APIs defined by the extension are to stubs that only
 -- include generated content such as API declarations and implicit valid
 -- usage statements.
 --
--- Note
---
 -- This extension is only intended for use in specific embedded
 -- environments with known implementation details, and is therefore
 -- undocumented.
@@ -135,7 +133,7 @@
 --
 -- == See Also
 --
--- 'AmigoProfilingSubmitInfoSEC', 'PhysicalDeviceAmigoProfilingFeaturesSEC'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_VALVE_descriptor_set_host_mapping - device extension
 --
--- == VK_VALVE_descriptor_set_host_mapping
+-- = VK_VALVE_descriptor_set_host_mapping
 --
 -- [__Name String__]
 --     @VK_VALVE_descriptor_set_host_mapping@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -52,15 +54,11 @@
 -- Memory offsets and sizes for descriptors /can/ be queried from a
 -- 'Vulkan.Core10.Handles.DescriptorSetLayout' as well.
 --
--- Note
---
 -- There is currently no specification language written for this extension.
 -- The links to APIs defined by the extension are to stubs that only
 -- include generated content such as API declarations and implicit valid
 -- usage statements.
 --
--- Note
---
 -- This extension is only intended for use in specific embedded
 -- environments with known implementation details, and is therefore
 -- undocumented.
@@ -219,11 +217,7 @@
 --
 -- == See Also
 --
--- 'DescriptorSetBindingReferenceVALVE',
--- 'DescriptorSetLayoutHostMappingInfoVALVE',
--- 'PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE',
--- 'getDescriptorSetHostMappingVALVE',
--- 'getDescriptorSetLayoutHostMappingInfoVALVE'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_VALVE_descriptor_set_host_mapping - device extension
 --
--- == VK_VALVE_descriptor_set_host_mapping
+-- = VK_VALVE_descriptor_set_host_mapping
 --
 -- [__Name String__]
 --     @VK_VALVE_descriptor_set_host_mapping@
@@ -22,6 +22,8 @@
 --
 -- [__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 Vulkan Version 1.1>
 --
 -- [__Special Use__]
 --
@@ -52,15 +54,11 @@
 -- Memory offsets and sizes for descriptors /can/ be queried from a
 -- 'Vulkan.Core10.Handles.DescriptorSetLayout' as well.
 --
--- Note
---
 -- There is currently no specification language written for this extension.
 -- The links to APIs defined by the extension are to stubs that only
 -- include generated content such as API declarations and implicit valid
 -- usage statements.
 --
--- Note
---
 -- This extension is only intended for use in specific embedded
 -- environments with known implementation details, and is therefore
 -- undocumented.
@@ -219,11 +217,7 @@
 --
 -- == See Also
 --
--- 'DescriptorSetBindingReferenceVALVE',
--- 'DescriptorSetLayoutHostMappingInfoVALVE',
--- 'PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE',
--- 'getDescriptorSetHostMappingVALVE',
--- 'getDescriptorSetLayoutHostMappingInfoVALVE'
+-- No cross-references are available
 --
 -- == Document Notes
 --
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
@@ -3,7 +3,7 @@
 --
 -- VK_VALVE_mutable_descriptor_type - device extension
 --
--- == VK_VALVE_mutable_descriptor_type
+-- = VK_VALVE_mutable_descriptor_type
 --
 -- [__Name String__]
 --     @VK_VALVE_mutable_descriptor_type@
@@ -129,9 +129,7 @@
 --
 -- == See Also
 --
--- 'MutableDescriptorTypeCreateInfoVALVE',
--- 'MutableDescriptorTypeListVALVE',
--- 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'
+-- No cross-references are available
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/SPIRVRequirements.hs b/src/Vulkan/SPIRVRequirements.hs
--- a/src/Vulkan/SPIRVRequirements.hs
+++ b/src/Vulkan/SPIRVRequirements.hs
@@ -17,7 +17,10 @@
 import Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage (PhysicalDevice16BitStorageFeatures(..))
 import Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT(..))
 import Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI(..))
-import Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV(..))
+import Vulkan.Extensions.VK_KHR_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesKHR(..))
+import Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)
+import Vulkan.Extensions.VK_KHR_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesKHR(..))
+import Vulkan.Extensions.VK_NV_cooperative_matrix2 (PhysicalDeviceCooperativeMatrix2FeaturesNV(..))
 import Vulkan.Extensions.VK_KHR_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesKHR(..))
 import Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV(..))
 import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures(..))
@@ -30,11 +33,13 @@
 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_NV_raw_access_chains (PhysicalDeviceRawAccessChainsFeaturesNV(..))
 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_NV_shader_atomic_float16_vector (PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV(..))
 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(..))
@@ -49,8 +54,8 @@
 import Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)
 import Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeatures(..))
 import Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(..))
-import Vulkan.Extensions.VK_KHR_shader_maximal_reconvergence (PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR(..))
 import Vulkan.Extensions.VK_KHR_shader_quad_control (PhysicalDeviceShaderQuadControlFeaturesKHR(..))
+import Vulkan.Extensions.VK_EXT_shader_replicated_composites (PhysicalDeviceShaderReplicatedCompositesFeaturesEXT(..))
 import Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV(..))
 import Vulkan.Extensions.VK_KHR_shader_subgroup_rotate (PhysicalDeviceShaderSubgroupRotateFeaturesKHR(..))
 import Vulkan.Extensions.VK_EXT_shader_tile_image (PhysicalDeviceShaderTileImageFeaturesEXT(..))
@@ -89,6 +94,7 @@
 import Vulkan.Extensions.VK_EXT_shader_atomic_float (pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME)
 import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (pattern EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME)
 import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (pattern EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME)
+import Vulkan.Extensions.VK_EXT_shader_replicated_composites (pattern EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME)
 import Vulkan.Extensions.VK_EXT_shader_stencil_export (pattern EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME)
 import Vulkan.Extensions.VK_EXT_shader_subgroup_ballot (pattern EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME)
 import Vulkan.Extensions.VK_EXT_shader_subgroup_vote (pattern EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME)
@@ -104,6 +110,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_compute_shader_derivatives (pattern KHR_COMPUTE_SHADER_DERIVATIVES_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)
@@ -125,6 +132,7 @@
 import Vulkan.Extensions.VK_KHR_shader_maximal_reconvergence (pattern KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME)
 import Vulkan.Extensions.VK_KHR_shader_non_semantic_info (pattern KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME)
 import Vulkan.Extensions.VK_KHR_shader_quad_control (pattern KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME)
+import Vulkan.Extensions.VK_KHR_shader_relaxed_extended_instruction (pattern KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME)
 import Vulkan.Extensions.VK_KHR_shader_subgroup_rotate (pattern KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME)
 import Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow (pattern KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME)
 import Vulkan.Extensions.VK_KHR_shader_terminate_invocation (pattern KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME)
@@ -135,14 +143,17 @@
 import Vulkan.Version (pattern MAKE_API_VERSION)
 import Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (pattern NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_compute_shader_derivatives (pattern NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME)
+import Vulkan.Extensions.VK_NV_cooperative_matrix2 (pattern NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_cooperative_matrix (pattern NV_COOPERATIVE_MATRIX_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_fragment_shader_barycentric (pattern NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_geometry_shader_passthrough (pattern NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_mesh_shader (pattern NV_MESH_SHADER_EXTENSION_NAME)
+import Vulkan.Extensions.VK_NV_raw_access_chains (pattern NV_RAW_ACCESS_CHAINS_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_ray_tracing (pattern NV_RAY_TRACING_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder (pattern NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (pattern NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_sample_mask_override_coverage (pattern NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME)
+import Vulkan.Extensions.VK_NV_shader_atomic_float16_vector (pattern NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_shader_image_footprint (pattern NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_shader_sm_builtins (pattern NV_SHADER_SM_BUILTINS_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_shader_subgroup_partitioned (pattern NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME)
@@ -639,6 +650,15 @@
           , deviceExtensionMinVersion = 0
           }
       ]
+  "SPV_NV_shader_atomic_fp16_vector" ->
+    (,)
+      []
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
   "SPV_EXT_fragment_fully_covered" ->
     (,)
       []
@@ -818,6 +838,60 @@
           , deviceExtensionMinVersion = 0
           }
       ]
+  "SPV_NV_raw_access_chains" ->
+    (,)
+      []
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = NV_RAW_ACCESS_CHAINS_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "SPV_KHR_compute_shader_derivatives" ->
+    (,)
+      []
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "SPV_EXT_replicated_composites" ->
+    (,)
+      []
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "SPV_KHR_relaxed_extended_instruction" ->
+    (,)
+      []
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "SPV_NV_cooperative_matrix2" ->
+    (,)
+      []
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "SPV_NV_tensor_addressing" ->
+    (,)
+      []
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
   _ -> ([], [])
 
 spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])
@@ -997,6 +1071,20 @@
           , deviceExtensionMinVersion = 0
           }
       ]
+  "AtomicFloat16VectorNV" ->
+    (,)
+      []
+      [ RequireDeviceFeature
+          { featureName = "shaderFloat16VectorAtomics"
+          , checkFeature = \PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV{shaderFloat16VectorAtomics} -> shaderFloat16VectorAtomics
+          , enableFeature = \_ -> PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV{shaderFloat16VectorAtomics = True}
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
   "Int64ImageEXT" ->
     (,)
       []
@@ -1379,15 +1467,6 @@
           , deviceExtensionMinVersion = 0
           }
       ]
-  "ShaderViewportIndexLayerNV" ->
-    (,)
-      []
-      [ RequireDeviceExtension
-          { deviceExtensionLayerName = Nothing
-          , deviceExtensionName = NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
-          , deviceExtensionMinVersion = 0
-          }
-      ]
   "ShaderViewportMaskNV" ->
     (,)
       []
@@ -1893,45 +1972,31 @@
           , deviceExtensionMinVersion = 0
           }
       ]
-  "ComputeDerivativeGroupQuadsNV" ->
+  "ComputeDerivativeGroupQuadsKHR" ->
     (,)
       []
       [ RequireDeviceFeature
           { featureName = "computeDerivativeGroupQuads"
-          , checkFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesNV{computeDerivativeGroupQuads} -> computeDerivativeGroupQuads
-          , enableFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesNV{..} -> PhysicalDeviceComputeShaderDerivativesFeaturesNV{computeDerivativeGroupQuads = True, ..}
+          , checkFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesKHR{computeDerivativeGroupQuads} -> computeDerivativeGroupQuads
+          , enableFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesKHR{..} -> PhysicalDeviceComputeShaderDerivativesFeaturesKHR{computeDerivativeGroupQuads = True, ..}
           }
       , RequireDeviceExtension
           { deviceExtensionLayerName = Nothing
-          , deviceExtensionName = NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
+          , deviceExtensionName = KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
           , deviceExtensionMinVersion = 0
           }
       ]
-  "ComputeDerivativeGroupLinearNV" ->
+  "ComputeDerivativeGroupLinearKHR" ->
     (,)
       []
       [ RequireDeviceFeature
           { featureName = "computeDerivativeGroupLinear"
-          , checkFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesNV{computeDerivativeGroupLinear} -> computeDerivativeGroupLinear
-          , enableFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesNV{..} -> PhysicalDeviceComputeShaderDerivativesFeaturesNV{computeDerivativeGroupLinear = True, ..}
-          }
-      , RequireDeviceExtension
-          { deviceExtensionLayerName = Nothing
-          , deviceExtensionName = NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
-          , deviceExtensionMinVersion = 0
-          }
-      ]
-  "FragmentBarycentricNV" ->
-    (,)
-      []
-      [ RequireDeviceFeature
-          { featureName = "fragmentShaderBarycentric"
-          , checkFeature = \PhysicalDeviceFragmentShaderBarycentricFeaturesKHR{fragmentShaderBarycentric} -> fragmentShaderBarycentric
-          , enableFeature = \_ -> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR{fragmentShaderBarycentric = True}
+          , checkFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesKHR{computeDerivativeGroupLinear} -> computeDerivativeGroupLinear
+          , enableFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesKHR{..} -> PhysicalDeviceComputeShaderDerivativesFeaturesKHR{computeDerivativeGroupLinear = True, ..}
           }
       , RequireDeviceExtension
           { deviceExtensionLayerName = Nothing
-          , deviceExtensionName = NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME
+          , deviceExtensionName = KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
           , deviceExtensionMinVersion = 0
           }
       ]
@@ -1949,20 +2014,6 @@
           , deviceExtensionMinVersion = 0
           }
       ]
-  "ShadingRateNV" ->
-    (,)
-      []
-      [ RequireDeviceFeature
-          { featureName = "shadingRateImage"
-          , checkFeature = \PhysicalDeviceShadingRateImageFeaturesNV{shadingRateImage} -> shadingRateImage
-          , enableFeature = \PhysicalDeviceShadingRateImageFeaturesNV{..} -> PhysicalDeviceShadingRateImageFeaturesNV{shadingRateImage = True, ..}
-          }
-      , RequireDeviceExtension
-          { deviceExtensionLayerName = Nothing
-          , deviceExtensionName = NV_SHADING_RATE_IMAGE_EXTENSION_NAME
-          , deviceExtensionMinVersion = 0
-          }
-      ]
   "MeshShadingNV" ->
     (,)
       []
@@ -2192,7 +2243,7 @@
           , deviceExtensionMinVersion = 0
           }
       ]
-  "DemoteToHelperInvocationEXT" ->
+  "DemoteToHelperInvocation" ->
     (,)
       [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0]
       [ RequireDeviceFeature
@@ -2263,7 +2314,7 @@
           , deviceExtensionMinVersion = 0
           }
       ]
-  "DotProductInputAllKHR" ->
+  "DotProductInputAll" ->
     (,)
       [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0]
       [ RequireDeviceFeature
@@ -2278,7 +2329,7 @@
           , deviceExtensionMinVersion = 0
           }
       ]
-  "DotProductInput4x8BitKHR" ->
+  "DotProductInput4x8Bit" ->
     (,)
       [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0]
       [ RequireDeviceFeature
@@ -2293,7 +2344,7 @@
           , deviceExtensionMinVersion = 0
           }
       ]
-  "DotProductInput4x8BitPackedKHR" ->
+  "DotProductInput4x8BitPacked" ->
     (,)
       [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0]
       [ RequireDeviceFeature
@@ -2308,7 +2359,7 @@
           , deviceExtensionMinVersion = 0
           }
       ]
-  "DotProductKHR" ->
+  "DotProduct" ->
     (,)
       [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0]
       [ RequireDeviceFeature
@@ -2462,6 +2513,20 @@
           , deviceExtensionMinVersion = 0
           }
       ]
+  "RayQueryPositionFetchKHR" ->
+    (,)
+      []
+      [ 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" ->
     (,)
       []
@@ -2524,7 +2589,7 @@
       [ RequireDeviceFeature
           { featureName = "shaderEnqueue"
           , checkFeature = \PhysicalDeviceShaderEnqueueFeaturesAMDX{shaderEnqueue} -> shaderEnqueue
-          , enableFeature = \_ -> PhysicalDeviceShaderEnqueueFeaturesAMDX{shaderEnqueue = True}
+          , enableFeature = \PhysicalDeviceShaderEnqueueFeaturesAMDX{..} -> PhysicalDeviceShaderEnqueueFeaturesAMDX{shaderEnqueue = True, ..}
           }
       , RequireDeviceExtension
           { deviceExtensionLayerName = Nothing
@@ -2588,17 +2653,115 @@
           , deviceExtensionMinVersion = 0
           }
       ]
-  "MaximallyReconvergesKHR" ->
+  "RawAccessChainsNV" ->
     (,)
       []
       [ RequireDeviceFeature
-          { featureName = "shaderMaximalReconvergence"
-          , checkFeature = \PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR{shaderMaximalReconvergence} -> shaderMaximalReconvergence
-          , enableFeature = \_ -> PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR{shaderMaximalReconvergence = True}
+          { featureName = "shaderRawAccessChains"
+          , checkFeature = \PhysicalDeviceRawAccessChainsFeaturesNV{shaderRawAccessChains} -> shaderRawAccessChains
+          , enableFeature = \_ -> PhysicalDeviceRawAccessChainsFeaturesNV{shaderRawAccessChains = True}
           }
       , RequireDeviceExtension
           { deviceExtensionLayerName = Nothing
-          , deviceExtensionName = KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME
+          , deviceExtensionName = NV_RAW_ACCESS_CHAINS_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "ReplicatedCompositesEXT" ->
+    (,)
+      []
+      [ RequireDeviceFeature
+          { featureName = "shaderReplicatedComposites"
+          , checkFeature = \PhysicalDeviceShaderReplicatedCompositesFeaturesEXT{shaderReplicatedComposites} -> shaderReplicatedComposites
+          , enableFeature = \_ -> PhysicalDeviceShaderReplicatedCompositesFeaturesEXT{shaderReplicatedComposites = True}
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "TensorAddressingNV" ->
+    (,)
+      []
+      [ RequireDeviceFeature
+          { featureName = "cooperativeMatrixTensorAddressing"
+          , checkFeature = \PhysicalDeviceCooperativeMatrix2FeaturesNV{cooperativeMatrixTensorAddressing} -> cooperativeMatrixTensorAddressing
+          , enableFeature = \PhysicalDeviceCooperativeMatrix2FeaturesNV{..} -> PhysicalDeviceCooperativeMatrix2FeaturesNV{cooperativeMatrixTensorAddressing = True, ..}
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "CooperativeMatrixReductionsNV" ->
+    (,)
+      []
+      [ RequireDeviceFeature
+          { featureName = "cooperativeMatrixReductions"
+          , checkFeature = \PhysicalDeviceCooperativeMatrix2FeaturesNV{cooperativeMatrixReductions} -> cooperativeMatrixReductions
+          , enableFeature = \PhysicalDeviceCooperativeMatrix2FeaturesNV{..} -> PhysicalDeviceCooperativeMatrix2FeaturesNV{cooperativeMatrixReductions = True, ..}
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "CooperativeMatrixConversionsNV" ->
+    (,)
+      []
+      [ RequireDeviceFeature
+          { featureName = "cooperativeMatrixConversions"
+          , checkFeature = \PhysicalDeviceCooperativeMatrix2FeaturesNV{cooperativeMatrixConversions} -> cooperativeMatrixConversions
+          , enableFeature = \PhysicalDeviceCooperativeMatrix2FeaturesNV{..} -> PhysicalDeviceCooperativeMatrix2FeaturesNV{cooperativeMatrixConversions = True, ..}
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "CooperativeMatrixPerElementOperationsNV" ->
+    (,)
+      []
+      [ RequireDeviceFeature
+          { featureName = "cooperativeMatrixPerElementOperations"
+          , checkFeature = \PhysicalDeviceCooperativeMatrix2FeaturesNV{cooperativeMatrixPerElementOperations} -> cooperativeMatrixPerElementOperations
+          , enableFeature = \PhysicalDeviceCooperativeMatrix2FeaturesNV{..} -> PhysicalDeviceCooperativeMatrix2FeaturesNV{cooperativeMatrixPerElementOperations = True, ..}
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "CooperativeMatrixTensorAddressingNV" ->
+    (,)
+      []
+      [ RequireDeviceFeature
+          { featureName = "cooperativeMatrixTensorAddressing"
+          , checkFeature = \PhysicalDeviceCooperativeMatrix2FeaturesNV{cooperativeMatrixTensorAddressing} -> cooperativeMatrixTensorAddressing
+          , enableFeature = \PhysicalDeviceCooperativeMatrix2FeaturesNV{..} -> PhysicalDeviceCooperativeMatrix2FeaturesNV{cooperativeMatrixTensorAddressing = True, ..}
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "CooperativeMatrixBlockLoadsNV" ->
+    (,)
+      []
+      [ RequireDeviceFeature
+          { featureName = "cooperativeMatrixBlockLoads"
+          , checkFeature = \PhysicalDeviceCooperativeMatrix2FeaturesNV{cooperativeMatrixBlockLoads} -> cooperativeMatrixBlockLoads
+          , enableFeature = \PhysicalDeviceCooperativeMatrix2FeaturesNV{..} -> PhysicalDeviceCooperativeMatrix2FeaturesNV{cooperativeMatrixBlockLoads = True, ..}
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = NV_COOPERATIVE_MATRIX_2_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 = 277
+pattern HEADER_VERSION = 302
 
 
 pattern HEADER_VERSION_COMPLETE :: Word32
-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 277
+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 302
 
 
 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.26.5
+version:        3.26.6
 synopsis:       Bindings to the Vulkan graphics API.
 description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme)
 category:       Graphics
@@ -106,7 +106,7 @@
       Vulkan.Core10.Enums.InternalAllocationType
       Vulkan.Core10.Enums.LogicOp
       Vulkan.Core10.Enums.MemoryHeapFlagBits
-      Vulkan.Core10.Enums.MemoryMapFlags
+      Vulkan.Core10.Enums.MemoryMapFlagBits
       Vulkan.Core10.Enums.MemoryPropertyFlagBits
       Vulkan.Core10.Enums.ObjectType
       Vulkan.Core10.Enums.PhysicalDeviceType
@@ -291,6 +291,7 @@
       Vulkan.Extensions
       Vulkan.Extensions.Dependencies
       Vulkan.Extensions.Handles
+      Vulkan.Extensions.VK_AMD_anti_lag
       Vulkan.Extensions.VK_AMD_buffer_marker
       Vulkan.Extensions.VK_AMD_device_coherent_memory
       Vulkan.Extensions.VK_AMD_display_native_hdr
@@ -339,6 +340,7 @@
       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_control
       Vulkan.Extensions.VK_EXT_depth_clamp_zero_one
       Vulkan.Extensions.VK_EXT_depth_clip_control
       Vulkan.Extensions.VK_EXT_depth_clip_enable
@@ -347,6 +349,7 @@
       Vulkan.Extensions.VK_EXT_descriptor_indexing
       Vulkan.Extensions.VK_EXT_device_address_binding_report
       Vulkan.Extensions.VK_EXT_device_fault
+      Vulkan.Extensions.VK_EXT_device_generated_commands
       Vulkan.Extensions.VK_EXT_device_memory_report
       Vulkan.Extensions.VK_EXT_direct_mode_display
       Vulkan.Extensions.VK_EXT_directfb_surface
@@ -384,8 +387,10 @@
       Vulkan.Extensions.VK_EXT_inline_uniform_block
       Vulkan.Extensions.VK_EXT_layer_settings
       Vulkan.Extensions.VK_EXT_legacy_dithering
+      Vulkan.Extensions.VK_EXT_legacy_vertex_attributes
       Vulkan.Extensions.VK_EXT_line_rasterization
       Vulkan.Extensions.VK_EXT_load_store_op_none
+      Vulkan.Extensions.VK_EXT_map_memory_placed
       Vulkan.Extensions.VK_EXT_memory_budget
       Vulkan.Extensions.VK_EXT_memory_priority
       Vulkan.Extensions.VK_EXT_mesh_shader
@@ -407,6 +412,7 @@
       Vulkan.Extensions.VK_EXT_pipeline_protected_access
       Vulkan.Extensions.VK_EXT_pipeline_robustness
       Vulkan.Extensions.VK_EXT_post_depth_coverage
+      Vulkan.Extensions.VK_EXT_present_mode_fifo_latest_ready
       Vulkan.Extensions.VK_EXT_primitive_topology_list_restart
       Vulkan.Extensions.VK_EXT_primitives_generated_query
       Vulkan.Extensions.VK_EXT_private_data
@@ -425,6 +431,7 @@
       Vulkan.Extensions.VK_EXT_shader_image_atomic_int64
       Vulkan.Extensions.VK_EXT_shader_module_identifier
       Vulkan.Extensions.VK_EXT_shader_object
+      Vulkan.Extensions.VK_EXT_shader_replicated_composites
       Vulkan.Extensions.VK_EXT_shader_stencil_export
       Vulkan.Extensions.VK_EXT_shader_subgroup_ballot
       Vulkan.Extensions.VK_EXT_shader_subgroup_vote
@@ -443,6 +450,7 @@
       Vulkan.Extensions.VK_EXT_validation_features
       Vulkan.Extensions.VK_EXT_validation_flags
       Vulkan.Extensions.VK_EXT_vertex_attribute_divisor
+      Vulkan.Extensions.VK_EXT_vertex_attribute_robustness
       Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state
       Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats
       Vulkan.Extensions.VK_EXT_ycbcr_image_arrays
@@ -458,6 +466,7 @@
       Vulkan.Extensions.VK_GOOGLE_surfaceless_query
       Vulkan.Extensions.VK_GOOGLE_user_type
       Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader
+      Vulkan.Extensions.VK_HUAWEI_hdr_vivid
       Vulkan.Extensions.VK_HUAWEI_invocation_mask
       Vulkan.Extensions.VK_HUAWEI_subpass_shading
       Vulkan.Extensions.VK_IMG_filter_cubic
@@ -472,6 +481,7 @@
       Vulkan.Extensions.VK_KHR_bind_memory2
       Vulkan.Extensions.VK_KHR_buffer_device_address
       Vulkan.Extensions.VK_KHR_calibrated_timestamps
+      Vulkan.Extensions.VK_KHR_compute_shader_derivatives
       Vulkan.Extensions.VK_KHR_cooperative_matrix
       Vulkan.Extensions.VK_KHR_copy_commands2
       Vulkan.Extensions.VK_KHR_create_renderpass2
@@ -519,9 +529,11 @@
       Vulkan.Extensions.VK_KHR_maintenance4
       Vulkan.Extensions.VK_KHR_maintenance5
       Vulkan.Extensions.VK_KHR_maintenance6
+      Vulkan.Extensions.VK_KHR_maintenance7
       Vulkan.Extensions.VK_KHR_map_memory2
       Vulkan.Extensions.VK_KHR_multiview
       Vulkan.Extensions.VK_KHR_performance_query
+      Vulkan.Extensions.VK_KHR_pipeline_binary
       Vulkan.Extensions.VK_KHR_pipeline_executable_properties
       Vulkan.Extensions.VK_KHR_pipeline_library
       Vulkan.Extensions.VK_KHR_portability_enumeration
@@ -548,6 +560,7 @@
       Vulkan.Extensions.VK_KHR_shader_maximal_reconvergence
       Vulkan.Extensions.VK_KHR_shader_non_semantic_info
       Vulkan.Extensions.VK_KHR_shader_quad_control
+      Vulkan.Extensions.VK_KHR_shader_relaxed_extended_instruction
       Vulkan.Extensions.VK_KHR_shader_subgroup_extended_types
       Vulkan.Extensions.VK_KHR_shader_subgroup_rotate
       Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow
@@ -573,14 +586,17 @@
       Vulkan.Extensions.VK_KHR_xlib_surface
       Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory
       Vulkan.Extensions.VK_LUNARG_direct_driver_loading
+      Vulkan.Extensions.VK_MESA_image_alignment_control
       Vulkan.Extensions.VK_MSFT_layered_driver
       Vulkan.Extensions.VK_MVK_ios_surface
       Vulkan.Extensions.VK_MVK_macos_surface
       Vulkan.Extensions.VK_NN_vi_surface
       Vulkan.Extensions.VK_NV_acquire_winrt_display
       Vulkan.Extensions.VK_NV_clip_space_w_scaling
+      Vulkan.Extensions.VK_NV_command_buffer_inheritance
       Vulkan.Extensions.VK_NV_compute_shader_derivatives
       Vulkan.Extensions.VK_NV_cooperative_matrix
+      Vulkan.Extensions.VK_NV_cooperative_matrix2
       Vulkan.Extensions.VK_NV_copy_memory_indirect
       Vulkan.Extensions.VK_NV_corner_sampled_image
       Vulkan.Extensions.VK_NV_coverage_reduction_mode
@@ -593,6 +609,7 @@
       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_display_stereo
       Vulkan.Extensions.VK_NV_extended_sparse_address_space
       Vulkan.Extensions.VK_NV_external_memory
       Vulkan.Extensions.VK_NV_external_memory_capabilities
@@ -614,12 +631,15 @@
       Vulkan.Extensions.VK_NV_optical_flow
       Vulkan.Extensions.VK_NV_per_stage_descriptor_set
       Vulkan.Extensions.VK_NV_present_barrier
+      Vulkan.Extensions.VK_NV_raw_access_chains
       Vulkan.Extensions.VK_NV_ray_tracing
       Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder
       Vulkan.Extensions.VK_NV_ray_tracing_motion_blur
+      Vulkan.Extensions.VK_NV_ray_tracing_validation
       Vulkan.Extensions.VK_NV_representative_fragment_test
       Vulkan.Extensions.VK_NV_sample_mask_override_coverage
       Vulkan.Extensions.VK_NV_scissor_exclusive
+      Vulkan.Extensions.VK_NV_shader_atomic_float16_vector
       Vulkan.Extensions.VK_NV_shader_image_footprint
       Vulkan.Extensions.VK_NV_shader_sm_builtins
       Vulkan.Extensions.VK_NV_shader_subgroup_partitioned
